API для получения триггерных событий плеером
Содержание раздела:
Общее описание запроса
Запрос направляется на встроенный HTTP сервер плеера для запуска воспроизведения определенного объявления.
Встроенный HTTP сервер плеера работает на интерфейсе 127.0.0.1 и не требует авторизации.
Base URL: http://127.0.0.1:9036/
GET current-playlist?frameId=<frameId>  Текущий плейлист для фрейма
{
   "playlist": [1, 2, 13],
   "playlistEndTime: "12:12:45 09.05.2019", //optional
   "currentIndex": 0,
   "currentAdvertisement": 13,  //optional
   "lastTime": 3000
}
playlist - список id объявлений текущего плейлиста 
playlistEndTime - время, до которого плейлист актуален (HH:mm:ss dd.MM.yyyy) 
currentIndex - текущая позиция в списке объявлений 
lastTime - оставшееся время в миллисекундах для текущего объявления
GET advertisements Текущий плейлист для фрейма
[
{
  "frameId": 7922,
  "items": [
    {
      "advertisementId": 33428,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\metro_stat_ScreenShots\\index.html",
      "type": "interactive",
      "name": "metro_stat_ScreenShots.zip"
    },
    {
      "advertisementId": 32045,
      "url": "https://google.com",
      "filePath": "",
      "type": "web_site",
      "name": "https://google.com"
    },
    {
      "advertisementId": 33526,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\1_Taksi_Uber_Yandex_5siek_Diekabr_600_300.mp4",
      "type": "video",
      "name": "1_Такси_Uber(Yandex)_5сек_Декабрь"
    },
    {
      "advertisementId": 33916,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\3_Taksi_Uber_Yandex_5siek_Diekabr_600_300.mp4",
      "type": "video",
      "name": "3_Taksi_Uber_Yandex_5siek_Diekabr_.mp4"
    },
    {
      "advertisementId": 33763,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\VIRA_STROY_Svoboda_5s_1.jpeg",
      "type": "picture",
      "name": "VIRA_STROY_Svoboda_5s"
    }
  ]
}
]
frameId - Id фрейма 
items - список доступных объявлений для текущего фрейма 
advertisementId - Id объявления 
filePath - Путь до файла объявления
type - Тип объявления 
name - Название объявления
POST media-metering OTS
{
 period: 30000, // presence validity period in ms
 count: 10, // может не совпадать с числом маков/людей
 macAddresses:
     [ //optional
         {
             class: "WIFI",
             signal: "-89", //optional
             address: "A3FFD0897214"
         },
         {
             class: "BT",
             signal: "-89", //optional
             address: "1234567890AB"
         },
     ],
 people: 
     [ //optional
         {
             gender: "MALE",
             age: 21, //optional
             ageSegment: "20-30",
             uuid: null //optional
         },
         {
             gender: "FEMALE",
             age: 69, //optional
             ageSegment: "60-70",
             uuid: null //optional
         }
     ]
}
POST execute-trigger/<frameId> Триггеры
Тело запроса:
{
  "trigger": "18",
  "type": "interrupt",
  "timeout": 1
}
- 
trigger— название триггера объявления, обязательное поле; - 
type— тип триггера, обязательное поле; - 
timeout— время в миллисекундах, обязательное для некоторых типов. 
Типы триггеров
| тип | описание | 
|---|---|
| interrupt | показать немедленно | 
| queue-or-interrupt | показать в течение n сек, если время до конца объявления меньше времени таймаута. Или показать после таймаута | 
| queue-or-discard | показать в течение n сек, если время до конца объявления меньше времени таймаута. Или отменить триггер | 
| queue | поставить в очередь следующим | 
Поле timeout обязательно для типов:
- 
queue-or-interrupt - 
queue-or-discard 
Ответы сервера
200 OK
{
  "trigger": "18",
  "timeout": 2000
}
timeout — время в мс до момента, когда плеер начнет показ объявления по триггеру.
404 Not found
Если такого фрейма или триггерного события не найдено на плеере.
{
    "error": 404,
    "reason": "Frame %d not found",
    "trigger": "18",
}
400 Bad request
Ошибка в запросе или теле запроса.
{
    "error": 400,
    "reason": "Error message",
    "trigger": "18",
}
412 Precondition Failed
В случае, если невозможно показать объявление по триггеру с типом queue-or-discard (условие по времени не может быть выполнено).
{
    "error": 412,
    "reason": "Error message",
    "trigger": "18",
    "possible-timeout": 7000  
}