API — различия между версиями
| TVclub (обсуждение | вклад)  (→Методы API) | TVclub (обсуждение | вклад)   (→[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)));
Получаемые данные
| 
  <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 - смещение временной зоны относительно Гринвича
 
 
 
-  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
