Changes

Jump to: navigation, search

Engine Service API

392 bytes added, 16:42, 27 May 2014
no edit summary
== МетодыОбщее описание==Сервисное API движка предназначено в первую очередь для предоставления сторонним приложениям возможности узнать, которые можно использовать при разработке продуктов, предназначенных для активированы ли какие-либо премиум-пользователей и/или которые будут распространяться под индивидуальной лицензией ==опции для движка, с которым работает приложение. Также API предоставляет возможность активировать нужную опцию от имени приложения.
Для проверки ключа пользователя, загрузки расширения и получения списка активированных опций используется веб-интерфейс Сервисное API движка, который работает на порту 6878, если не указан другой порт опцией <tt>--http-port</tt>.
API работает по протоколу HTTP. Запросы отсылаются методами HTTP GET либо POST, ответы в формате JSON.на адрес <tt><nowiki>http://localhost:6878/webui/api/service</nowiki></tt>
Файл-расширение можно получить с помощью API реселлера:http://wikiОтветы в формате JSON.acestream.org/wiki/index.php/Reseller_API
Добавили на вики описание метода ==Методы API для создания ключа пользователя:http://wiki.acestream.org/wiki/index.php/Reseller_API#createUserKey==
Каждый запрос к API должен иметь обязательный параметр <tt>method</tt>, содержащий название вызываемого метода.
Метод API createUserkey позволяет создавать ключи двух разных типовНиже приведен список всех доступных методов. Тип ключа задается параметром type:
'''<tt> type=1 </tt>''' - общий ключ, который обеспечит пользователю получения необходимого Премиум-статуса==check_user_key===Проверить, для работы с любыми приложениями и отключение определенных форматов рекламы (такой загружен ли указанный ключ работает на любых устройствах с любыми приложениями)пользователя в движок.
параметры:* '''<tt> type=2 </tt>key''' (''string'') - ключ для индивидуальной лицензии, который будет работать только с указанным приложением.пользователя
варианты ответов:
* '''{"status": "ok"}''' - указанный ключ загружен в движок
* '''{"status": "not_found"}''' - указанный ключ не загружен в движок
* '''{“status”: “error”, "error": "error description"}''' - при обработке запроса возникла ошибка
При создании ключа с типом 2 в запросе обязательно должен быть указан параметр пример запроса: <ttnowiki> product http://localhost:6878/webui/api/service?method=check_user_key&user_key=1111-2222-3333-4444</ttnowiki> (идентификатор продукта, к которому должен быть привязан ключ).
Идентификатор продукта можно будет узнать на сайте acccounts.acestream.net (пока этот раздел недоступен мы можем выдавать идентификаторы по запросу).ответ: <nowiki>{"status": "not_found"}</nowiki>
Чтобы стать реселлером, нужно зарегистрироваться у нас на сайте и зайти по ссылке:===check_product_user_keys===https://accountsПроверка наличия ключей пользователя для конкретного продукта.acestream.net/reseller
Откроется форма регистрации реселлера, нужно нажать "зарегистрироваться", после этого мы получим письмо про регистрацию нового реселлера и поставим ему статус "подтвержден". После этого по ссылке httpsпараметры://accounts.acestream.net/reseller будут доступны все инструменты для реселлера.* '''product_key''' (''string'') - публичная часть ключа продукта
варианты ответов:
* '''{"status": "ok"}''' - в движок загружен как минимум один ключ для указанного приложения
* '''{"status": "not_found"}''' - ключей для указанного приложения нет
* '''{“status”: “error”, "error": "error description"}''' - при обработке запроса возникла ошибка
'''Предлагается следующая схема работы''' (п.2 - работает для версии движка 2.2.1-Next и 3.0.0 Beta)пример запроса: <nowiki>http://localhost:6878/webui/api/service?method=check_product_user_keys&product_key=1111</nowiki>
'''1) Проверка ключа пользователяответ:'''http <nowiki>{"status":"ok"}<//127.0.0.1:6878/webui/app/check-user-key?key=<user_keynowiki>
Варианты ответов:===load_extension===Загрузка файла-расширения в движок
* если указанный ключ загружен Чтобы загрузить файл расширения в движок, нужно отправить POST запрос на адрес <nowiki>http: {"status"//localhost: "ok"}6878/webui/api/service?method=load_extension</nowiki>
* если указанный ключ не загружен в движок: {"status": "not_found"}В теле запроса нужно передать содержимое файла расширения, полученное с помощью метода API для реселлеров [[Reseller_API#createUserKey|createUserKey]]
варианты ответов:* если при обработке запроса возникла ошибка'''{"status":"ok"}''' - расширение успешно загружено в движок * '''{“status”: “error”, "error": "error description"}''' - при обработке запроса возникла ошибка пример запроса: <nowiki>http://localhost:6878/webui/api/service?method=load_extension</nowiki>
'''2) Чтобы загрузить файл расширения в движок, нужно отправить POST запрос на этот адресответ:'''http <nowiki>{"status":"ok"}<//127.0.0.1:6878/webui/app/load-extensionnowiki>
В теле запроса нужно передать содержимое файла расщирения===get_services===Получить список премиум-опций, активированных на движке.
Варианты ответов:Если передается параметр <tt>product_key</tt>, то возвращается список опций, доступных для всех приложений, а также опций, доступных только для указанного приложения.
- если расширение успешно загружен в движок: {"status": "ok"}Если параметр <tt>product_key</tt> не передается, то возвращается только список опций, доступных для всех приложений.
- если при обработке запроса возникла ошибкапараметры: {"error": "error description"}* '''product_key''' (''string'') - необязательный параметр, в котором передается публичная часть ключа продукта
'''3) Получение списка премиум-опций, активированных на движкепример запроса:''' <nowiki>http://127.0.0.1localhost:6878/webui/appapi/servicesservice?method=get_services&product_key=1111</getnowiki>
Формат ответа - массив объектов, каждый из которых описывает одну премиум-опцию.
 
Пример:
<nowiki>{“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"
}
]}</nowiki> или
'''Поля <nowiki>{“status”:'''“error”, “error”: “error description”}</nowiki>
Поля:* '''<tt> id ''' (''string) </tt>''' ) - идентификатор опции* '''<tt> name ''' (''string) </tt>''' ) - название опции* '''<tt> valid_from ''' (''integer) </tt>''' ) - дата, с которой опция активна (unix timestamp)* '''<tt> valid_to ''' (''integer) </tt>''' ) - дата, по которую опция активна (unix timestamp)* '''<tt> trial ''' (''boolean) </tt>''' ) - true, если опция активирована бесплатно на тестовый период* '''<tt> description ''' (''string) </tt>''' ) - описание опции

Navigation menu