Open main menu

Ace Stream Wiki β

Changes

Product key

2,936 bytes added, 13:38, 15 April 2013
Новая страница: «Начиная с версии 2.1.0 движок работает по API только с авторизированными клиентами. Авторизац…»
Начиная с версии 2.1.0 движок работает по API только с авторизированными клиентами. Авторизация выполняется на этапе рукопожатия. Для успешной авторизации у клиента должен быть ключ продукта. Ключ продукта можно получить бесплатно, заполнив форму [http://www.acestream.net/developers/request_key.php здесь]

== Авторизация клиента ==

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

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

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

;''request_key''
: представляет собой буквенно-цифровую строку, сгенерированную случайным образом

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

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

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

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