Difference between revisions of "Product key"

From Ace Stream Wiki
Jump to: navigation, search
(Новая страница: «Начиная с версии 2.1.0 движок работает по API только с авторизированными клиентами. Авторизац…»)
 
Line 1: Line 1:
Начиная с версии 2.1.0 движок работает по API только с авторизированными клиентами. Авторизация выполняется на этапе рукопожатия. Для успешной авторизации у клиента должен быть ключ продукта. Ключ продукта можно получить бесплатно, заполнив форму [http://www.acestream.net/developers/request_key.php здесь]
+
Начиная с версии 2.1.0 движок работает по API только с авторизованными приложениями. Авторизация выполняется на этапе рукопожатия. Для успешной авторизации у приложения должен быть ключ продукта. Ключ продукта можно получить бесплатно, заполнив форму [http://www.acestream.net/developers/request_key.php здесь]
  
== Авторизация клиента ==
+
== Авторизация приложения ==
  
* клиент отсылает сообщение
+
* приложение отсылает сообщение
 
  <tt>HELLOBG version=''api_version''</tt>
 
  <tt>HELLOBG version=''api_version''</tt>
 
* движок отсылает в ответ
 
* движок отсылает в ответ
 
  <tt>HELLOTS version=''engine_version'' key=''request_key''</tt>
 
  <tt>HELLOTS version=''engine_version'' key=''request_key''</tt>
* клиент формирует ответный ключ и отсылает его движку
+
* приложение формирует ответный ключ и отсылает его движку
 
  <tt>READY key=''response_key''</tt>
 
  <tt>READY key=''response_key''</tt>
  
Если авторизация прошла нормально, то движок продолжит работу с клиентом, отослав событие <tt>AUTH</tt> (уровень авторизации пользователя).
+
Если авторизация прошла нормально, то движок продолжит работу с приложением, отослав событие <tt>AUTH</tt> (уровень авторизации пользователя).
  
Если авторизация не прошла, движок отправит клиенту событие <tt>NOTREADY</tt>. Это же событие будет отправляться в ответ на любые команды от неавторизированного клиента, кроме команд <tt>HELLOBG</tt>, <tt>READY</tt> и <tt>SHUTDOWN</tt>.
+
Если авторизация не прошла, движок отправит приложению событие <tt>NOTREADY</tt>. Это же событие будет отправляться в ответ на любые команды от неавторизованного приложения, кроме команд <tt>HELLOBG</tt>, <tt>READY</tt> и <tt>SHUTDOWN</tt>.
  
 
;''request_key''
 
;''request_key''
Line 24: Line 24:
  
 
== Пример ==
 
== Пример ==
Для примера предположим, что клиент использует ключ продукта 123456-111111-222222-333333
+
Для примера предположим, что приложение использует ключ продукта 123456-111111-222222-333333
  
 
Подпись для ''response_key'' в данном примере формируется так:
 
Подпись для ''response_key'' в данном примере формируется так:

Revision as of 16:16, 10 September 2013

Начиная с версии 2.1.0 движок работает по API только с авторизованными приложениями. Авторизация выполняется на этапе рукопожатия. Для успешной авторизации у приложения должен быть ключ продукта. Ключ продукта можно получить бесплатно, заполнив форму здесь

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

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