Difference between revisions of "Product key"
(Новая страница: «Начиная с версии 2.1.0 движок работает по API только с авторизированными клиентами. Авторизац…») |
|||
Line 1: | Line 1: | ||
− | Начиная с версии 2.1.0 движок работает по API только с | + | Начиная с версии 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>NOTREADY</tt>. Это же событие будет отправляться в ответ на любые команды от неавторизованного приложения, кроме команд <tt>HELLOBG</tt>, <tt>READY</tt> и <tt>SHUTDOWN</tt>. |
;''request_key'' | ;''request_key'' | ||
Line 24: | Line 24: | ||
== Пример == | == Пример == | ||
− | Для примера предположим, что | + | Для примера предположим, что приложение использует ключ продукта 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