API — различия между версиями

Материал из Твое Интернет Телевидение
Перейти к: навигация, поиск
(Методы API)
([auth] Авторизация)
Строка 3: Строка 3:
  
 
== [auth] Авторизация ==
 
== [auth] Авторизация ==
 +
===Описание метода===
 +
Самым первым запросом на сервер API всегда должен быть запрос на авторизацию клиента. В ответ сервер вернет информацию о аккаунте клиента и, в случае успешной авторизации, информации о созданной сессии в которой содержится уникальный ключ - token, для доступа к остальным методам API. Без этого ключа вызов других методов API невозможен.
  
http://api.iptv.so/1.0/xml/auth?hash=MD5(login.MD5(password))
+
 
 +
===Формат запроса===
 +
<pre>http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/auth?hash=<HASH></pre>
 +
'''HASH''' - это MD5-хеш полученный в результате конкатенации логина пользователя и MD5-хеша пароля пользователя - MD5(<USER_LOGIN> + MD5(<USER_PASSWORD>))
 +
 
 +
 
 +
===Примеры запроса===
 +
'''PHP'''
 +
<pre>$data=file_get_contents('http://api.iptv.so/1.0/xml/auth?hash='.MD5($login.MD5($password)));</pre>
 +
 
 +
 
 +
===Получаемые данные===
 +
{| class="wikitable"
 +
|+XML
 +
|-
 +
|<pre>
 +
  <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></pre>
 +
|}
 +
{| class="wikitable"
 +
|}
 +
 
 +
===Описание полученных данных===
 +
'''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''' - смещение временной зоны относительно Гринвича
 +
'''session''' - сессия для работы с остальными методами API
 +
::::'''TOKEN_ID''' - ключ доступа, именно он должен использоваться для вызова всех остальных методов API
 +
::::'''TOKEN_EXPIRE''' - время до которого действителен текущий ключ доступа. При каждом успешном запросе срок жизни ключа продлевается до 24-х часов с текущей даты.
 +
::::'''TOKEN_EXPIRE''' - имя временной зоны
 +
::::'''SERVERTIME''' - текущее время на сервере
  
 
== [account] Аккаунт ==
 
== [account] Аккаунт ==

Версия 05:45, 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)));


Получаемые данные

XML
  <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 - информация о аккаунте клиента
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 - смещение временной зоны относительно Гринвича

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 для определенных каналов на заданный период времени

http://api.iptv.so/1.0/xml/epg?cid=1&time=1473541200&period=0&channels=2,1,4,5,6,1,8,9,11,12,13,14&desc_limit=100&sort=1&limit=10&page=1&sid=session_id

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