Product key

From Ace Stream Wiki
Revision as of 16:19, 27 May 2014 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"

Внимание! После того как ваше приложение будет готово и Вы решите провести открытый/публичный тест, зарегистрируйтесь как разработчик приложений и отправьте нам запрос на получение ключа продукта для Вашего приложения. После проверки Вашего приложения, мы предоставим специальный ключ продукта, который позволит Вам в течение 30 дней провести открытые/публичные тесты для любых пользователей, в том числе и для пользователей, у которых нет подключенной опции NoADs.

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

Формат ключа продукта

Ключ продукта представляет собой строку из четырех групп символов, разделенных знаком "-". Каждая группа может состоять из символов [0-9A-Za-z]. Первая группа символов называется "публичная часть ключа продукта" и передается в открытом виде в различных запросах.

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

  • приложение отсылает сообщение
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