Open main menu

Ace Stream Wiki β

Changes

Developer API

1,945 bytes removed, 13:16, 5 September 2017
no edit summary
==ОбщееCommon описаниеdescription of API==
This API allows application developers to work with [[User_key|user keys]] in Ace Stream system. API provides methods for creating user keys and activating different options for the keys.
Данное API позволяет разработчикам приложений работать с [[User_key|ключами пользователей]] в системе Ace Stream. API предоставляет методы для создания ключей пользователей и для активации различных опций для ключей.
 
==Requests format==
==Формат запросов==
API requests are sent via HTTP-GET method to the following addresses:
Запросы API отправляются методом HTTP-GET на такие адреса:
* тестовыйtest режимmode: <tt><nowiki>https://api-sandbox.acestream.net/developer</nowiki></tt>
* боевойwork режимmode: <tt><nowiki>https://api.acestream.net/developer</nowiki></tt>
 
Responses for these requests comes in JSON format.
Ответы на запросы приходят в формате json.
 
If during query processing an error was occurred, the following kind of response will be sent:
Если при обработке запроса возникла ошибка, будет отослан ответ такого вида:
<tt><nowiki>{"error":"error descrtiption"}</nowiki></tt>
 
Responses to successfully processed requests depend on a method being called.
Ответы за успешно обработанные запросы зависят от вызываемого метода.
 
===Required common parameters for all requests===
===Обязательные общие параметры для всех запросов===
* '''method''' - вызываемый методcalled API method
* '''api_key''' - ключAPI клиентаclient key API
* '''api_version''' - поддерживаемая версияsupported API version (текущаяcurrent версияversion: 1.0)
* '''product''' - публичнаяpublic частьpart of [[Product_key/en|ключаproduct продуктаkey]]
* '''sign''' - цифроваяrequest's подписьdigital signature запроса
 
===Algorithm for generating a digital signature===
===Алгоритм формирования цифровой подписи===
* array of strings like "parameter_name=parameter_value" is created
* создается массив строк вида "название_параметра=значение_параметра"
* the resulting array is sorted
* полученный массив сортируется
* elements of the sorted array are combined in a string with a separator "#"
* элементы отсортированного массива объединяются в строку с разделителем "#"
* private key of API client is added to the resulting string
* к полученной строке добавляется секретный ключ клиента API
* signature is sha1-hash of the resulting string (in hexadecimal representation, 40 characters, lowercase)
* подписью является sha1-хеш от полученной строки (в шестнадцатеричном представлении, 40 символов, маленькими буквами)
 
PHP code:
Код на PHP:
<tt><nowiki>function makeSignature(array $params, $apiSecret)
{
}</nowiki></tt>
 
==Методы API methods==
 
===getServiceCost===
Get the cost of a service
Получить стоимость опции
 
parameters:
параметры:
* '''service''' (''string'') - идентификаторservice ID опции
* '''period''' (''string'') - идентификаторperiod ID периода
 
fields in response:
поля в ответе:
* '''cost''' (''decimal'') - стоимостьthe опцииcost наof указанныйthe периодservice вfor a specified period in EUR
 
request example:
пример запроса:
<nowiki>https://api.acestream.net/developer?method=getServiceCost &crarr;
&api_version=1.0 &crarr;
&api_key=be6f66e0848528139583b567fb222215444fc8ac &crarr;
&app=9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw &crarr;
&product=kjYX790gTytRaXV04IvC &crarr;
&service=noAds &crarr;
&period=m1 &crarr;
&sign=45c84ceffd3ec443586e8f4666b28abde8400768</nowiki>
 
response:
ответ:
<nowiki>{"cost":1}</nowiki>
 
===activateService===
Activate service for user
Активировать опцию для пользователя.
 
As a result of successful activation, funds will be charged from developer's balance.
В результате успешной активации средства будут списаны с баланса разработчика.
 
parameters:
параметры:
* '''user_key''' (''string'') - ключuser key пользователя
* '''service''' (''string'') - идентификаторservice ID опции
* '''period''' (''string'') - идентификаторperiod ID периода
 
fields in response:
поля в ответе:
* '''validFrom''' (''unix timestamp'') - сfrom какогоwhat времениtime опцияservice is active активна
* '''validTo''' (''unix timestamp'') - доtill какогоwhat времениtime опцияservice will be active активна
 
request example:
пример запроса:
<nowiki>https://api.acestream.net/developer?method=activateService &crarr;
&api_version=1.0 &crarr;
&api_key=be6f66e0848528139583b567fb222215444fc8ac &crarr;
&app=9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw &crarr;
&product=kjYX790gTytRaXV04IvC &crarr;
&user_key=a455865e5800fd7efab75f2b4852fc2497f9fc39 &crarr;
&service=noAds &crarr;
&sign=c4df772a4a41ad7bbb4d7d07e46cad5e3622c59e</nowiki>
 
response (successful activation):
ответ (успешная активация опции):
<nowiki>{"validFrom":1376048972,"validTo":1378640972}</nowiki>
 
response (there are not enough funds on developer's balance to activate the service):
ответ (на балансе разработчика недостаточно средств для активации опции):
<nowiki>{"error":"not enough credits"}</nowiki>
 
===getUserKeyInfo===
Get information about user key
Получить информацию о ключе пользователя
 
parameters:
параметры:
* '''user_key''' (''string'') - ключuser key пользователя
 
fields in response:
поля в ответе:
* '''services''' (''array'') - array of services, bound to this user key. Each service ia described with the following fields
* '''services''' (''array'') - массив опций, привязанных к данному ключу пользователя. Каждая опция описывается такими полями:
** '''id''' (''string'') - идентификаторservice ID опции
** '''validFrom''' (''unix timestamp'') - сfrom какогоwhat времениtime опцияservice is active активна
** '''validTo''' (''unix timestamp'') - доtill какогоwhat времениtime опцияservice will be active активна
** '''enabled''' (''boolean'') - активнаis лиservice опцияactive вat данныйthis moment момент
 
request example:
пример запроса:
<nowiki>https://api.acestream.net/developer?method=getUserKeyInfo &crarr;
&api_version=1.0 &crarr;
&api_key=be6f66e0848528139583b567fb222215444fc8ac &crarr;
&app=9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw &crarr;
&product=kjYX790gTytRaXV04IvC &crarr;
&user_key=8fb311be3836b04f61817dbf8a23c05739ebb13e &crarr;
&sign=5e0fc46d908e5f224ce9fce9f6a83dd6b3502cc0</nowiki>
 
response (no services):
ответ (нет опций):
<tt>{"services":[]}</tt>
 
response (there are services):
ответ (есть опции):
<nowiki>{"services": [
{"id": "noAds", "validFrom": 1374673235, "validTo": 1445089235, "enabled": true},
 
===createUserKey===
Create a new user key
Создать новый ключ пользователя
 
Effect of user key applies only to developer's product, specified in parameter <tt>product</tt>.
Действие ключа пользователя распостраняется только на продукт разработчика, указанный в параметре <tt>product</tt>.
 
fields in response:
поля в ответе:
* '''userKey''' (''string'') - созданныйcreated ключuser key пользователя
* '''extension''' (''string'') - content of extension file which is used for the following loading to the engine
* '''extension''' (''string'') - [[extension string]] (строка, которая используется для последующей загрузки созданного ключа пользователя в движок)
 
request example:
пример запроса:
 
<nowiki>https://api.acestream.net/developer?method=createUserKey &crarr;
&api_key=cd3119af58cfa8833ba105a4fd4eb791395b921c &crarr;
&api_version=1.0 &crarr;
&app=3_250o55jdisu88skggogg4g4w4wc8wgskss4gkgkkk40k0gcsw8 &crarr;
&product=kjYX790gTytRaXV04IvC &crarr;
&sign=99982a11708ef4a80e12f1ca845d314340db8869</nowiki>
 
response:
ответ:
<tt>{
"userKey": "c7456d962209ce22a8edd0c788940a15792bc575",
}</tt>
 
==Service ID==
==Идентификаторы опций==
* '''noAds''' - опцияservice "No ADs" (отключение рекламыdisable Ace Stream ads)
* '''premium''' - опцияservice "Premium Streams" (доступaccess кto премиум-контентуpremium content)
* '''premium1device''' - премиумservice на"Premium одноStreams" устройствоfor one device
 
==Period ID==
==Идентификаторы периодов==
* '''m1''' - 30 днейdays
* '''y1''' - 365 днейdays