HTTP API плеера CS Player

Плеер имеет встроенный HTTP сервер для обработки запросов к API плеера. Запросы к API направляются на встроенный HTTP сервер плеера. Встроенный HTTP сервер плеера работает на интерфейсе 127.0.0.1 и не требует авторизации.

Выдача текущего плейлиста фрейма

GET /current-playlist?frameId=<frameId>
{
 "playlist": [1, 2, 13],
 "playlistEndTime": "12:12:45 09.05.2019",
 "currentIndex": 0,
 "currentAdvertisement": 13,
 "lastTime": 3000
}
Table 1. Описание полей объекта текущего плейлиста
Параметр Описание

playlist

список id объявлений текущего плейлиста

playlistEndTime

время до которого плейлист актуален (HH:mm:ss dd.MM.yyyy)

currentIndex

текущая позиция в списке объявлений

lastTime

оставшееся время в миллисекундах для текущего объявления

Приём данных по значениям медиа метрии

POST /media-metering
 {
    "period": 30000,
    "count": 10,
    "macAddresses":
        [
            {
                "class": "WIFI",
                "signal": "-89",
                "address": "A3FFD0897214"
            },
            {
                "class": "BT",
                "signal": "-89",
                "address": "1234567890AB"
            }
        ]
}
Table 2. Описание полей объекта показателей медиаметрии
Параметр Описание

period

Период, в миллисекундах, за который были зарегистрированы мак адреса

count

Число уникальных контактов за значение period

macAddresses

Массив глобально уникальных мак адресов, не обязательное поле

macAddresses.class

Тип MAC адреса (WIFI / BlueTooth)

macAddresses.signal

Уровень сигнала пакета, из которого взят MAC адрес, не обязательное поле

macAddresses.address

MAC адрес

Установка текущей позиции для мобильного экрана

POST position
{
    "lat": 56.082698,
    "lon": 47.305554
}
Table 3. Описание полей
Параметр Описание

lat

широта

lon

долгота

Воспроизведение контента по триггерам

POST execute-trigger/<frameId>
{
    "trigger": "18",
    "type": "interrupt",
    "timeout": 1000
}
  • trigger — идентификатор триггера объявления, обязательное поле;

  • type — тип триггера, обязательное поле;

  • timeout — время в миллисекундах, обязательное для типов:

    • queue-or-interrupt

    • queue-or-discard

Table 4. Типы тригерров
Параметр Описание

interrupt

показать немедленно

queue-or-interrupt

показать в течении n сек, если время до конца объявления меньше времени таймаута. Или показать после таймаута

queue-or-discard

показать в течении n сек, если время до конца объявления меньше времени таймаута. Или отменить триггер

queue

поставить в очередь следующим

Примеры ответов сервера

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
}