Product key

From Ace Stream Wiki
Revision as of 10:42, 13 September 2013 by Anton (talk | contribs)
Jump to: navigation, search

Начиная с версии 2.1.0 движок работает по API только с авторизованными приложениями. Авторизация выполняется на этапе рукопожатия (более подробное описание смотрите ниже). Для успешной авторизации у приложения должен быть ключ продукта.

Вы можете получить персональный ключ продукта для Вашего приложения, либо использовать публичный ключ:

kjYX790gTytRaXV04IvC-xZH3A18sj5b1Tf3I-J5XVS1xsj-j0797KwxxLpBl26HPvWMm

Если Вы используете публичный ключ, то Ваше приложение смогут использовать только пользователи, у которая активирована опция "No ADs" (отключение рекламы Ace Stream). Если у пользователя не активирована указанная опция, то при попытке начать просмотр какого-либо контента движок отправит ошибку "No ADs option must be activated to use this product"

Если Ваше приложение поддерживает рекламные форматы системы Ace Stream, Вы можете бесплатно получить персональный ключ продукта, заполнив форму здесь. Приложения с персональным ключом продукта могут использовать все пользователи, независимо от наличия у них каких-либо премиум-опций.

Авторизация приложения

  • приложение отсылает сообщение
HELLOBG version=api_version
  • движок отсылает в ответ
HELLOTS version=engine_version key=request_key
  • приложение формирует ответный ключ и отсылает его движку
READY key=response_key

Если авторизация прошла нормально, то движок продолжит работу с приложением, отослав событие AUTH (уровень авторизации пользователя).

Если авторизация не прошла, движок отправит приложению событие NOTREADY. Это же событие будет отправляться в ответ на любые команды от неавторизованного приложения, кроме команд HELLOBG, READY и SHUTDOWN.

request_key
представляет собой буквенно-цифровую строку, сгенерированную случайным образом
response_key
формируется из request_key и ключа продукта по следующему алгоритму, представленного в виде псевдокода:
signature = hex(sha1(request_key + product_key)); // сгенерировать подпись запроса
x = product_key.split("-")[0];                    // вырезаем все символы до первого знака "-" из ключа продукта
response_key = x + "-" + signature;               // отправляем движку вырезанную на предыдущем этапе строку и подпись, разделенные знаком "-"

Пример

Для примера предположим, что приложение использует ключ продукта 123456-111111-222222-333333

Подпись для response_key в данном примере формируется так: hex(sha1("5eb1f78f123456-111111-222222-333333")) == fd2a247d83adffed56d82cca150d5fab225f1408


>>HELLOBG version=4
<<HELLOTS version=2.1.0 key=5eb1f78f
>>READY key=123456-fd2a247d83adffed56d82cca150d5fab225f1408
<<AUTH 1