Application Developers Example
Contents
Общая информация
Данный пример пошагово описывает все необходимые шаги для настройки работы стороннего приложения с движком Ace Stream.
Во всех запросах для примера будут использоваться такие переменные:
- ключ продукта kjYX790gTytRaXV04IvC-xZH3A18sj5b1Tf3I-J5XVS1xsj-j0797KwxxLpBl26HPvWMm
- API Key: 94d585bda4883a40d969d723adcaba36033e61d8
- API Secret: b5dbd62b494664f5bfa9
Эти данные приведены исключительно для наглядности примера, в "боевом" режиме они работать не будут.
Регистрация разработчика и получение ключа продукта
Для начала Вам необходимо зарегистрироваться в системе Ace Stream как разработчик приложений, после чего Вы сможете зарегистрировать свое приложение и получить для него ключ продукта. Как это сделать, описано в разделе Разработчики.
Работа с движком
По умолчанию работать с Вашим приложением будет только движок, для которого активирована опция NoADs.
Если эта опция не активирована, то на любую попытку воспроизвести что-либо движок будет возвращать ошибку с таким текстом: No ADs option must be activated to use this product
Соответственно, для начала работы Вашему приложению необходимо проверить, активирована ли опция NoADs на движке.
Проверка активации опции NoADs на движке
Метод get_services сервисного API движка позволяет узнать, какие опции активированы на движке. Для этого нужно отправить HTTP GET запрос на движок:
http://localhost:6878/webui/api/service?method=get_services&product_key=kjYX790gTytRaXV04IvC
В запросе нужно передать публичную часть ключа продукта (kjYX790gTytRaXV04IvC) в параметре product_key.
Варианты ответов
- если возникла ошибка (нужно выслать нам логи движка)
{"status": "error", "error": "error description"}
- если на движке не активирована опция NoADs
{ “status”: “ok”, “services”:[] }
- если на движке активирована опция NoADs
{ “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" } ] }
В возвращаемом списке могут быть и другие опции, кроме NoADs. Для того, чтобы узнать, активирована ли конкретная опция, нужно пройтись по списку и проверять поле id каждого элемента.
Если опция NoADs не активирована, ее нужно активировать. Для этого нужно выполнить такие шаги:
- создать новый ключ пользователя (метод createUserKey API для реселлеров)
- активировать опцию NoADs для этого ключа пользователя (метод activateService API для реселлеров)
- загрузить ключ пользователя в движок (метод extension сервисного API движка)
Ниже эти шаги описаны более подробно.
Создание ключа пользователя
Запрос:
https://api.acestream.net/reseller?method=createUserKey ↵ &api_key=94d585bda4883a40d969d723adcaba36033e61d8 ↵ &api_version=1.0 ↵ &product=kjYX790gTytRaXV04IvC ↵ &sign=fcf118b246892d80111de2661b79edb27ff48f08
Ответ:
{ "userKey":"84acee3a529bafaa65215af6f86d03fe38020b2d", "extension":"F5T6L+X\/TnhqoXP\/TyzlaaEmAT7uu97HHvJZ8u7 ↵ ShbGBf1w4OAgRhP7Hj0+DGzjK2AolsnfkMgOSFq4qYOlgQdWR3nRGJCq ↵ bX8QxqRC\/zbNu+3RerhylcdqvVEuAuWSuEQW0\/tgaqKaIVrfVSug\/ ↵ SVrBTLtXea\/4FLqXzz8lTYbv90p\/Nmw6jZcpaSaf4ISJQo9d+NTJ15 ↵ cz0emN+FtdABjIZNz91NVEWWyzMNl5iorzCWS8lYrdRQgT\/psdbf3N6 ↵ T2wfozL2b98yOkGH53eG4uc5wX+75xluvKwnKK32MJ7uDPZpDLHxTNc9 ↵ 2GCXKEloLFl+IyC91gghJpry6erUN3g9musH9CKvk4TZoZ+RTQINXlxr ↵ +IDklEnL6OBnbrMrXSsjxahdQM2yFWRE\/gG91mEB6JNN0z99oswOiMg ↵ hx0=" }
Активация
Запрос:
https://api.acestream.net/reseller?service=noAds ↵ &period=m1 ↵ &user_key=84acee3a529bafaa65215af6f86d03fe38020b2d ↵ &method=activateService ↵ &api_key=94d585bda4883a40d969d723adcaba36033e61d8 ↵ &api_version=1.0 ↵ &product=kjYX790gTytRaXV04IvC ↵ &sign=2f55622fb9c21af5b950c210774ea34247d1a073
Ответ:
{"validFrom":1401204680,"validTo":1403796680}
Загрузка ключа в движок
Запрос:
POST /webui/api/service?method=load_extension HTTP/1.1 Host: localhost Content-Type: text/plain Content-Length: 437 F5T6L+X\/TnhqoXP\/TyzlaaEmAT7uu97HHvJZ8u7ShbGBf1w4OAgRhP7Hj0+DGz ↵ jK2AolsnfkMgOSFq4qYOlgQdWR3nRGJCqbX8QxqRC\/zbNu+3RerhylcdqvVEuAu ↵ WSuEQW0\/tgaqKaIVrfVSug\/SVrBTLtXea\/4FLqXzz8lTYbv90p\/Nmw6jZcpa ↵ Saf4ISJQo9d+NTJ15cz0emN+FtdABjIZNz91NVEWWyzMNl5iorzCWS8lYrdRQgT\ ↵ /psdbf3N6T2wfozL2b98yOkGH53eG4uc5wX+75xluvKwnKK32MJ7uDPZpDLHxTNc ↵ 92GCXKEloLFl+IyC91gghJpry6erUN3g9musH9CKvk4TZoZ+RTQINXlxr+IDklEn ↵ L6OBnbrMrXSsjxahdQM2yFWRE\/gG91mEB6JNN0z99oswOiMghx0=
Ответ:
HTTP/1.0 200 OK Server: BaseHTTP/0.3 Python/2.7.2 Date: Tue, 27 May 2014 15:46:22 GMT Content-Type: application/json Content-Length: 16 {"status": "ok"}