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"}