Application Developers Example

From Ace Stream Wiki
Revision as of 09:57, 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"}