Difference between revisions of "Engine Service API"

From Ace Stream Wiki
Jump to: navigation, search
(check_user_key)
(check_product_user_keys)
Line 38: Line 38:
  
 
варианты ответов:
 
варианты ответов:
* '''{"status": "ok"}''' - в движок загружен как минимум один ключ для указанного приложения
+
* '''{"result": "ok", "error": null}''' - в движок загружен как минимум один ключ для указанного приложения
* '''{"status": "not_found"}''' - ключей для указанного приложения нет
+
* '''{"result": "not_found", "error": null}''' - ключей для указанного приложения нет
* '''{“status”: “error”, "error": "error description"}''' - при обработке запроса возникла ошибка
+
* '''{"result": null, "error": "error description"}''' - при обработке запроса возникла ошибка
  
 
пример запроса:
 
пример запроса:
Line 46: Line 46:
  
 
ответ:
 
ответ:
  <nowiki>{"status": "ok"}</nowiki>
+
  <nowiki>{"result": "ok", "error": null}</nowiki>
  
 
===load_extension===
 
===load_extension===

Revision as of 15:50, 13 June 2014

Общее описание

Сервисное API движка предназначено в первую очередь для предоставления сторонним приложениям возможности узнать, активированы ли какие-либо премиум-опции для движка, с которым работает приложение. Также API предоставляет возможность активировать нужную опцию от имени приложения.

Сервисное API движка работает на порту 6878, если не указан другой порт опцией --http-port.

API работает по протоколу HTTP. Запросы отсылаются на адрес http://localhost:6878/webui/api/service

Ответы в формате JSON, в виде JSON-RPC, но без id.

Методы API

Каждый запрос к API должен иметь обязательный параметр method, содержащий название вызываемого метода.

Ниже приведен список всех доступных методов.

check_user_key

Проверить, загружен ли указанный ключ пользователя в движок.

параметры:

  • 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

Загрузка файла-расширения в движок

Чтобы загрузить файл расширения в движок, нужно отправить POST запрос на адрес http://localhost:6878/webui/api/service?method=load_extension

В теле запроса нужно передать содержимое файла расширения, полученное с помощью метода API для реселлеров createUserKey

варианты ответов:

  • {"status": "ok"} - расширение успешно загружено в движок
  • {“status”: “error”, "error": "error description"} - при обработке запроса возникла ошибка

пример запроса:

http://localhost:6878/webui/api/service?method=load_extension

ответ:

{"status": "ok"}

get_services

Получить список премиум-опций, активированных на движке.

Если передается параметр product_key, то возвращается список опций, доступных для всех приложений, а также опций, доступных только для указанного приложения.

Если параметр product_key не передается, то возвращается только список опций, доступных для всех приложений.

параметры:

  • product_key (string) - необязательный параметр, в котором передается публичная часть ключа продукта

пример запроса:

http://localhost:6878/webui/api/service?method=get_services&product_key=1111

Формат ответа - массив объектов, каждый из которых описывает одну премиум-опцию. Пример:

{
“status”: “ok”,
“services”:
[
  {
    "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"
  }
]
}

или

{“status”: “error”, “error”: “error description”}

Поля:

  • id (string) - идентификатор опции
  • name (string) - название опции
  • valid_from (integer) - дата, с которой опция активна (unix timestamp)
  • valid_to (integer) - дата, по которую опция активна (unix timestamp)
  • trial (boolean) - true, если опция активирована бесплатно на тестовый период
  • description (string) - описание опции