Application Developers Example

From Ace Stream Wiki
Revision as of 09:58, 29 May 2014 by Anton (talk | contribs) (Работа с движком)
Jump to: navigation, search

Общая информация

Данный пример пошагово описывает все необходимые шаги для настройки работы стороннего приложения с движком 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"}