API — различия между версиями
TVclub (обсуждение | вклад) (→Получаемые данные) |
TVclub (обсуждение | вклад) (→Получаемые данные) |
||
| Строка 92: | Строка 92: | ||
</pre> | </pre> | ||
|} | |} | ||
| + | <div style="clear:both"></div> | ||
===Описание полученных данных=== | ===Описание полученных данных=== | ||
Версия 06:02, 18 сентября 2016
Содержание
Методы
[auth] Авторизация
Описание метода
Самым первым запросом на сервер API всегда должен быть запрос на авторизацию клиента. В ответ сервер вернет информацию о аккаунте клиента и, в случае успешной авторизации, информации о созданной сессии в которой содержится уникальный ключ - token, для доступа к остальным методам API. Без этого ключа вызов других методов API невозможен.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/auth?hash=<HASH>
HASH - это MD5-хеш полученный в результате конкатенации логина пользователя и MD5-хеша пароля пользователя - MD5(<USER_LOGIN> + MD5(<USER_PASSWORD>))
Примеры запроса
PHP
$data=file_get_contents('http://api.iptv.so/1.0/xml/auth?hash='.MD5($login.MD5($password)));
Получаемые данные
<response>
<account>
<info>
<login><USER_LOGIN></login>
<mail><USER_EMAIL></mail>
<name><USER_NAME></name>
</info>
<options>
<OPTION_NAME><1|0></OPTION_NAME>
...
</options>
<services>
<item>
<id><SERVICE_ID></id>
<expire><SERVICE_EXPIRE></expire>
<name><SERVICE_NAME></name>
<type><SERVICE_TYPE></type>
</item>
...
</services>
<settings>
<server_id><SERVER_ID></server_id>
<server_name><SERVER_NAME></server_name>
<tz_name><TZ_NAME></tz_name>
<tz_gmt><TZ_GMT></tz_gmt>
</settings>
</account>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{ "account": {
"info": {
"login": <USER_LOGIN>,
"mail": <USER_EMAIL>,
"name": <USER_NAME>
},
"options": {
<OPTION_NAME>: 1|0
},
"services": [
{
"id": <SERVICE_ID>,
"expire": <SERVICE_EXPIRE>,
"name": <SERVICE_NAME>,
"type": <SERVICE_TYPE>
},
...
],
"settings": {
"server_id": <SERVER_ID>,
"server_name": <SERVER_NAME>,
"tz_name": <TZ_NAME>,
"tz_gmt": <TZ_GMT>
}
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
account - содержит в себе
- info - информация о аккаунте клиента
- USER_LOGIN - логин клиента
- USER_EMAIL - e-mail клиента
- USER_NAME - имя клиента
- options - список доступных
- OPTION_NAME - имя опции, может принимать значение 1 - доступно или 0 - недоступно для клиента.
- services - список доступных для клиента сервисов, может содержать несколько вложенных элементов item удовлетворяющих следующему описанию:
- SERVICE_ID - уникальный ID сервиса
- SERVICE_EXPIRE - срок истечения подписки на сервис
- SERVICE_NAME - имя сервиса
- SERVICE_TYPE - тип сервиса [пакет каналов, опция, плейлист]
- settings - текущие настройки клиента
- SERVER_ID - ID сервера вещания
- SERVER_NAME - отображаемое имя сервера вещания
- TZ_NAME - имя временной зоны
- TZ_GMT - смещение временной зоны относительно Гринвича
- info - информация о аккаунте клиента
session - сессия для работы с остальными методами API
- TOKEN_ID - ключ доступа, именно он должен использоваться для вызова всех остальных методов API
- TOKEN_EXPIRE - время до которого действителен текущий ключ доступа. При каждом успешном запросе срок жизни ключа продлевается до 24-х часов с текущей даты.
- TOKEN_EXPIRE - имя временной зоны
- SERVERTIME - текущее время на сервере
[account] Аккаунт
http://api.iptv.so/1.0/xml/account?sid=session_id
[logout] Закрытие сессии
http://api.iptv.so/1.0/xml/logout?sid=session_id
[groups] Список категорий ТВ
http://api.iptv.so/1.0/xml/groups?sid=session_id
[groups] Список каналов в группе ТВ
http://api.iptv.so/1.0/xml/channels?gid=1&sort=1&sid=session_id
@gid - group id
@sort - 1|2|3
[live] Получение ссылки на трансляцию
http://api.iptv.so/1.0/xml/live?cid=1&sid=session_id
@cid - channel id
[epg] EPG для определенных каналов на заданный период времени
time
@time - epg start time, unixtime
@period - epg time to period, hours
@channels - epg for channels ex.: 1,2,3
or @gid - all channels in this group id
@desc_limit - int, 0 - off, 200 - max
@limit
@start
@page
@sort - 1|2|3