Начиная с версии 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