Changes

Jump to: navigation, search

Developer API

1,945 bytes removed, 16: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 Streamsystem. API предоставляет методы для создания ключей пользователей и для активации различных опций для ключейprovides methods for creating user keys and activating different options for the keys.
==Формат запросовRequests format==Запросы API отправляются методом requests are sent via HTTP-GET на такие адресаmethod to the following addresses:* тестовый режимtest mode: <tt><nowiki>https://api-sandbox.acestream.net/developer</nowiki></tt>* боевой режимwork mode: <tt><nowiki>https://api.acestream.net/developer</nowiki></tt>
Ответы на запросы приходят в формате jsonResponses for these requests comes in JSON format.
Если при обработке запроса возникла ошибка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 APImethod * '''api_key''' - ключ клиента APIclient key * '''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 APIclient is added to the resulting string * подписью является signature is sha1-хеш от полученной строки hash of the resulting string (в шестнадцатеричном представленииin hexadecimal representation, 40 символовcharacters, маленькими буквамиlowercase)
Код на PHPcode:
<tt><nowiki>function makeSignature(array $params, $apiSecret)
{
}</nowiki></tt>
==Методы APImethods==
===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;
&productapp=kjYX790gTytRaXV04IvC 9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw &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;
&productapp=kjYX790gTytRaXV04IvC 9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw &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** '''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;
&productapp=kjYX790gTytRaXV04IvC 9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw &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>.
поля в ответеfields in response:* '''userKey''' (''string'') - созданный ключ пользователяcreated user key * '''extension''' (''string'') - [[content of extension string]] (строка, которая используется для последующей загрузки созданного ключа пользователя в движок)file which is used for the following loading to the engine
пример запросаrequest example:
<nowiki>https://api.acestream.net/developer?method=createUserKey &crarr;
&api_key=cd3119af58cfa8833ba105a4fd4eb791395b921c &crarr;
&api_version=1.0 &crarr;
&productapp=kjYX790gTytRaXV04IvC 3_250o55jdisu88skggogg4g4w4wc8wgskss4gkgkkk40k0gcsw8 &crarr;
&sign=99982a11708ef4a80e12f1ca845d314340db8869</nowiki>
ответresponse:
<tt>{
"userKey": "c7456d962209ce22a8edd0c788940a15792bc575",
}</tt>
==Идентификаторы опцийService ID==* '''noAds''' - опция service "No ADs" (отключение рекламы disable Ace Streamads)* '''premium''' - опция service "Premium Streams" (доступ к премиум-контентуaccess to premium content)* '''premium1device''' - премиум на одно устройствоservice "Premium Streams" for one device
==Идентификаторы периодовPeriod ID==* '''m1''' - 30 днейdays* '''y1''' - 365 днейdays

Navigation menu