Доступно с версии 0.84
Рекомендуемая минимальная версия для использования 0.93
В данный момент находится в процессе активной разработки
API постоянно расширяется и изменяется,
следите за новыми версиями
Общая информация
Подключение
$conf{API_ENABLE} = 1;
Конфигурация
В системе реализован RESTful интерфейс управления услугами и абонентами. Интерфейс находит по адресу /api.cgi
.
Отправка, получение данных производится по протоколу HTTP POST/GET/PUT/DELETE
. Все взаимодействие по интерфейсу выполняется по принципам REST (ресурс определяться по средствам задания имени в URL).
Для сохранение совместимости с стандартом REST все ключи автоматически переводятся в camelCase, но поскольку несоответствие названий в базе данных может усложнить разработку – существует возможность отключить такое превращение используя несколько вариантов:
- Параметр
$conf{API_FILDS_CAMELIZE}
в конфигурационном файле - Задать параметрах snakeCase=1 в GET или в POST "snakeCase": "1"
Значение | Результат |
---|---|
1 | Все ключи превращаются в camelCase |
0 | Ключи в исходном виде, как в базе данных (snake_case ) |
Сделать ограничение на Admin RESTful API, можно с помощью опции $conf{API_IPS},
в конфигурационном файле config.pl, пример
$conf{API_IPS} = '192.20.208.1, 217.116.76.0/24, 104.81.60.171';
Или в настройках Настройка>Администраторы>Доступ
Возвращать по почту письма, смс или другие вещи которые поддерживают перевод в RESTful API, можно включить с помощью опции $conf{API_CONF_LANGUAGE},
в конфигурационном файле config.pl, пример
$conf{API_CONF_LANGUAGE} = 1;
Авторизация
Для подтверждения личности при выполнении запросов, некоторые пути требуют соответствующий привилегии:
- Авторизация администратора выполняется через
API_KEY
. Ключ нужно передать в заголовке запросаKEY
в значенииAPI_KEY
.
Для полученияAPI_KEY
нужно его задать через веб-интерфейс Настройки > Администраторы, полеAPI_KEY
. - Пользователям нужно использовать идентификатор сессии (
sid
), передавая его значение в заголовкеUSERSID
.
Для полученияsid
можно воспользоваться авторизацией через API используя маршрут авторизация абонента (/user/login
).
Запуск на nginx
Чтобы включить поддержку nginx нужно:
прописать в config.pl опцию
$conf{API_NGINX}=1;
- Отредактировать ваш конфигурационный файл nginx
Работа с API для ботов
для авторизации в USER API телеграмм бота необходимо
1) Прописать IP с которых будет обращаться бот к серверу
$conf{BOT_APIS}='127.0.0.1';
2) Прописать секрет бота для дополнительной проверки запроса (любое значение)
$conf{BOT_SECRET}='test1234567787654';
Авторизация происходит по хедеру BOTSECRET
BOTSECRET хранится в телеграм боте и передается для авторизации
Получение информации по пользователю и работа с пользователем
1) хедер USERBOT - какой именно бот авторизуется, возможные варианты - Viber, Telegram
2) хедер USERID - id пользователя в боте
Стандарт REST
Реализованный в системе RESTful интерфейс управления услугами и абонентами соответствует стандарту REST API.