Product key

From Ace Stream Wiki
Revision as of 16:14, 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