Changes

Jump to: navigation, search

Product key

2,614 bytes removed, 10:54, 6 September 2017
no edit summary
Starting from version 2.1.0 engine works by API with authorized applications only. Authorization takes place during handshake (more detailed description you can find below). To be successfully authorized an application must have a product key.
Начиная с версии 2.1.0 движок работает по API только с авторизованными приложениями. Авторизация выполняется на этапе рукопожатия (более подробное описание смотрите ниже). Для успешной авторизации у приложения должен быть ключ продукта.
 
You can get your personal product key for your application or use a public key:
Вы можете получить персональный ключ продукта для Вашего приложения, либо использовать публичный ключ:
<tt>kjYX790gTytRaXV04IvC-xZH3A18sj5b1Tf3I-J5XVS1xsj-j0797KwxxLpBl26HPvWMm</tt>
 
If you use the public key, your app can be used only by users who have activated option "No ADs" (Ace Stream disabling ads). If this option is not activated, the engine will send an error "No ADs option must be activated to use this product" when user tries to start playback of some content.
Если Вы используете публичный ключ, то Ваше приложение смогут использовать только пользователи, у которая активирована опция "No ADs" (отключение рекламы Ace Stream). Если у пользователя не активирована указанная опция, то при попытке начать просмотр какого-либо контента движок отправит ошибку "No ADs option must be activated to use this product"
 
'''Attention!''' When your application is ready and you decide to make an opened/public test, send us a request to receive a test key by registering as [[Developers|developer]], with a description of the application and a link to download it. After verification of your product we will give you a special product key which will allow you to make opened/public tests within 30 days for any users, including users who don't have enabled NoADs option. Test for All!
'''Внимание!''' После того как ваше приложение будет готово и Вы решите провести открытый/публичный тест, зарегистрируйтесь как [[Developers|разработчик приложений]] и отправьте нам запрос на получение ключа продукта для Вашего приложения. После проверки Вашего приложения, мы предоставим специальный ключ продукта, который позволит Вам в течение 30 дней провести открытые/публичные тесты для любых пользователей, в том числе и для пользователей, у которых нет подключенной опции NoADs.
 
If your app supports ad formats of Ace Stream system, you can get a personal product key for free by registering as [[Developers|developer]]. Application with a personal product key can be used by all users, regardless of whether they have any premium options.
Если Ваше приложение поддерживает рекламные форматы системы Ace Stream, Вы можете бесплатно получить персональный ключ продукта. Для этого Вам необходимо зарегистрироваться как [[Developers|разработчик приложений]]. Приложения с персональным ключом продукта могут использовать все пользователи, независимо от наличия у них каких-либо премиум-опций.
 
== Authorization of application ==
== Формат ключа продукта ==
Below the schema of application authorization is described:
Ключ продукта представляет собой строку из четырех групп символов, разделенных знаком "-". Каждая группа может состоять из символов [0-9A-Za-z]. Первая группа символов называется "'''публичная часть ключа продукта'''" и передается в открытом виде в различных запросах.
 
* application sends handshake "HELLOBG" message
== Авторизация приложения ==
 
* приложение отсылает сообщение
<tt>HELLOBG version=''api_version''</tt>
* engine sends the answer
* движок отсылает в ответ
<tt>HELLOTS version=''engine_version'' key=''request_key''</tt>
* application generates response key and send it to engine
* приложение формирует ответный ключ и отсылает его движку
<tt>READY key=''response_key''</tt>
 
If the authorization was successfull then engine will continue to work with application and send an "AUTH" event (user authorization level).
Если авторизация прошла нормально, то движок продолжит работу с приложением, отослав событие <tt>AUTH</tt> (уровень авторизации пользователя).
 
If the authorization failed then engine sends event <tt>NOTREADY</tt>. This event is also sent as answer to any command from an unauthorized application.
Если авторизация не прошла, движок отправит приложению событие <tt>NOTREADY</tt>. Это же событие будет отправляться в ответ на любые команды от неавторизованного приложения, кроме команд <tt>HELLOBG</tt>, <tt>READY</tt> и <tt>SHUTDOWN</tt>.
 
;''request_key''
: random alpha-numeric string
: представляет собой буквенно-цифровую строку, сгенерированную случайным образом
 
;''response_key''
: is generated from ''request_key'' and product key with the following algorithm (described in pseudocode):
: формируется из ''request_key'' и ключа продукта по следующему алгоритму, представленного в виде псевдокода:
<tt><nowiki>signature = hex(sha1(request_key + product_key)); // сгенерироватьgenerate подписьthe запросаrequest signature
x = product_key.split("-")[0]; // вырезаемcut всеall символыchars доuntil первого знакаfirst "-" изfrom the ключаproduct продуктаkey
response_key = x + "-" + signature; // отправляемsend движкуthe вырезаннуюstring наfrom предыдущемthe этапеprevious строкуstep иand подпись,request разделенныеsignature знаком "-"</nowiki></tt>&crarr;
separated by hyphen ("-") char to the engine</nowiki></tt>
 
== ПримерExample ==
ДляIn примераthis предположим,example чтоwe приложениеsuppose используетthat ключthe продуктаapplication has a product key 123456-111111-222222-333333
 
Request signature for the given ''response_key'' in this example is generated in this way:
Подпись для ''response_key'' в данном примере формируется так:
<tt>hex(sha1("5eb1f78f123456-111111-222222-333333")) == fd2a247d83adffed56d82cca150d5fab225f1408</tt>
 

Navigation menu