API (Application Programming Interface) - это набор методов, позволяющих получить доступ к функциям или данным Astra из внешних приложений.

    Сессии

    Метод возвращает список текущих сессий. Формат ответа:

    {
         "cmd": "sessions"
    }

    Формат информации о сессии: SESSION-INFO:

    {
        "client_id": N,
        "channel_id": "...",
        "channel_name": "...",
        "addr": "...",
        "uptime": N
    }
    • client_id — уникальный номер сессии
    • channel_id — ID потока
    • channel_name — имя потока
    • addr — IP-адрес клиента. Чтобы получить IP-адрес из заголовка HTTP X-Real-IP или X-Forwarded-For, при проксировании запросов необходимо использовать auth_request.
    • uptime — время, в секундах, с начала сессии

    Чтобы завершить сеанс, используйте метод закрытия сеанса:

    {
        "cmd": "close-session",
        "id": N
    }
    • id — номер сессии

    Другое

    Перезапуск astra

    Запрос:

    {
        "cmd": "restart"
    }

    Загрузка конфигурации

    Запрос:

    {
        "cmd": "load"
    }

    Ответ-содержимое файла конфигурации.

    Получение конфигурации пользователя:

    {
        "cmd": "get-user", "id": "login"
    }

    Установить лицензию:

    {
        "cmd": "set-license", "license": "xxx"
    }

    Установить изображение в плитке стрима:

    {
       "cmd":"set-stream-image", "id":"a001", "url":"http://..."
    }

    или можно использовать base64

    {
       "cmd":"set-stream-image", "id":"a001", "data:image/png;base64,$base64"
    }

    Использование API

    curl

    curl -X POST \
        -d '{"cmd": "api-method"}' \
        http://admin:password@127.0.0.1:8000/control/

    127.0.0.1:8000 адрес сервера и порт Astra
    admin:password имя пользователя и пароль администратора

    php

    $req = json_encode(array(
        'cmd' => 'api-method',
    ));
    $ch = curl_init("http://127.0.0.1:8000/control/");
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_USERPWD, "admin:password");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    curl_close($ch);

    127.0.0.1:8000 адрес сервера и порт Astra
    admin:password имя пользователя и пароль администратора
    $res данные ответа Astra.