Engine Service API
Contents
Общее описание
Сервисное API движка предназначено в первую очередь для предоставления сторонним приложениям возможности узнать, активированы ли какие-либо премиум-опции для движка, с которым работает приложение. Также API предоставляет возможность активировать нужную опцию от имени приложения.
Сервисное API движка работает на порту 6878, если не указан другой порт опцией --http-port.
API работает по протоколу HTTP. Запросы отсылаются на адрес http://localhost:6878/webui/api/service
Ответы в формате JSON, в виде JSON-RPC, но без id.
Методы API
Каждый запрос к API должен иметь обязательный параметр method, содержащий название вызываемого метода.
Ниже приведен список всех доступных методов.
check_user_key
Проверить, загружен ли указанный ключ пользователя в движок.
параметры:
- user_key (string) - ключ пользователя
варианты ответов:
- {"result": "ok", "error": null} - указанный ключ загружен в движок
- {"result": "not_found", "error": null} - указанный ключ не загружен в движок
- {"result": null, "error": "error description"} - при обработке запроса возникла ошибка
пример запроса:
http://localhost:6878/webui/api/service?method=check_user_key&user_key=1111-2222-3333-4444
ответ:
{"result": "not_found", "error": null}
check_product_user_keys
Проверка наличия ключей пользователя для конкретного продукта.
параметры:
- product_key (string) - публичная часть ключа продукта
варианты ответов:
- {"result": "ok", "error": null} - в движок загружен как минимум один ключ для указанного приложения
- {"result": "not_found", "error": null} - ключей для указанного приложения нет
- {"result": null, "error": "error description"} - при обработке запроса возникла ошибка
пример запроса:
http://localhost:6878/webui/api/service?method=check_product_user_keys&product_key=1111
ответ:
{"result": "ok", "error": null}
load_extension
Загрузка extension string в движок
Чтобы загрузить extension string в движок, нужно отправить POST запрос на адрес http://localhost:6878/webui/api/service?method=load_extension
В теле запроса нужно передать extension string, полученную с помощью метода API для реселлеров createUserKey, либо аналогичного метода API для разработчиков createUserKey
варианты ответов:
- {"result": true, "error": null} - extension string успешно загружена в движок
- {"result": null, "error": "error description"} - при обработке запроса возникла ошибка
пример запроса:
http://localhost:6878/webui/api/service?method=load_extension
ответ:
{"result": true}
get_services
Получить список премиум-опций, активированных на движке.
Если передается параметр product_key, то возвращается список опций, доступных для всех приложений, а также опций, доступных только для указанного приложения.
Если параметр product_key не передается, то возвращается только список опций, доступных для всех приложений.
параметры:
- product_key (string) - необязательный параметр, в котором передается публичная часть ключа продукта
пример запроса:
http://localhost:6878/webui/api/service?method=get_services&product_key=1111
Формат ответа - массив объектов, каждый из которых описывает одну премиум-опцию. Пример:
{ "result": [ { "id": "noAds", "name": "No ADs", "valid_from": 1376939146, "valid_to": 1411671946, "trial": false, "description": "\u041e\u0442\u043a\u043b\ u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u044b Ace Stream" } ], "error": null }
или
{"result": null, "error": "error description"}
Поля:
- id (string) - идентификатор опции
- name (string) - название опции
- valid_from (integer) - дата, с которой опция активна (unix timestamp)
- valid_to (integer) - дата, по которую опция активна (unix timestamp)
- trial (boolean) - true, если опция активирована бесплатно на тестовый период
- description (string) - описание опции
check_user_service
Проверить, активирована ли указанная опция на движке.
параметры:
- id (string) - идентификатор опции
пример запроса:
http://localhost:6878/webui/api/service?method=check_user_service&id=noAds
Формат ответа - boolean значение. Пример (опция не активирована):
{ "result": false, "error": null }
или
{"result": null, "error": "error description"}