API

Материал из Твое Интернет Телевидение
Версия от 06:22, 18 сентября 2016; TVclub (обсуждение | вклад) ([account] Аккаунт)

Перейти к: навигация, поиск

Методы

[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>
JSON
{	"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 - смещение временной зоны относительно Гринвича

session - описание текущей сессии

TOKEN_ID - ключ доступа который используется для вызова всех остальных методов API
TOKEN_EXPIRE - время до которого действителен текущий ключ доступа. При каждом успешном запросе срок жизни ключа продлевается до 24-х часов с текущей даты.
SERVERTIME - текущее время на сервере

[account] Аккаунт

Описание метода

Возвращает ту же информацию, что и метод auth. Может использоваться для получения информации об аккаунте без повторной авторизации.


Формат запроса

http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/account?token=<TOKEN_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