Получение списка пакетов из API "24 часа ТВ" для публикации на сайте провайдера

Список пакетов для вывода на провайдерском сайте со стороны "24 часа ТВ" реализован в провайдерском API - https://api.24h.tv/v2/doc/provider#!/ 

Для получения информации из API необходимо получить провайдерский токен из административной панели "24 часа ТВ" по адресу https://24h.tv/admin/settings/tokens/

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

Пакеты в "24 часа ТВ" бывают двух типов: базовые и дополнительные. В базовые пакеты входят основные телеканалы, а дополнительные пакеты являются расширением базовых. Каждый базовый пакет имеет свой список дополнительных пакетов, разрешённых для подключения вместе с ним. Так же базовый пакет может уже включать в себя какой-то перечень дополнительных пакетов (а может и не иметь таковых). Например: самый дешевый базовый пакет не имеет включенных в него дополнительных пакетов, но у него большой список доступных дополнительных пакетов, а в самый дорогой пакет напротив, уже включены некоторые дополнительные пакеты и поэтому список дополнительных пакетов, разрешённых для подключения с ним, небольшой. Дополнительные пакеты не имеют включённых или разрешённых дополнительных пакетов.

Так же есть понятие ПРОМО пакета, эти пакеты назначаются "24 часа ТВ" абоненту при его регистрации или при проведении акций, например при активации промо-кода. Провайдер не может подключать ПРОМО пакеты.

Вся информация из API "24 часа ТВ" выводится в json формате.

Структура возвращаемого API пакета

[
   {
    "id": 1, -- Идентификатор пакета 
    "name": "Первый", -- Название пакета
    "description": "Описание пакета", -- Описание пакета
    "price": "100.00", -- Цена пакета
    "base": true, -- Признак базовый пакет или дополнительный, true - базовый, false - дополнительный
    "agreement": "", -- ссылка на пользовательское соглашение
    "available": [...], -- список дополнительных пакетов доступных для подключения с этим базовым пакетом
    "include": [...], -- список дополнительных пакетов включенных дополнительных пакетов в базовый пакет
    "channels": [...], -- список тв каналов включенных в пакет
    "videos": [...], -- список видео источников (кинотеатров)
    "period": "0-1-0" -- период действия пакета, выводится в формате Д-М-Г, где Д - количество дней действия пакета, М - количество месяцев действия пакета, Г - количество лет действия пакета
  },
...
]

API для запроса списка пакетов: https://provapi.24h.tv/v2/doc/provider#!/Packets/get_packets

Для вывода информации о включенных каналах, включенных и доступных пакетов в параметрах запроса необходимо указать includes:

  • availables - дополнительные пакетые доступные для подключения с этим пакетом
  • includes - включенные дополнительные пакеты в пакет
  • channels - каналы в данном пакете
  • videos - все источники видео в данном пакете

API для запроса пакета по его id: https://provapi.24h.tv/v2/doc/provider#!/Packets/get_packets_packet_id при запросе конкретного пакета includes указывать не надо, вся информация уже включена в вывод.

Для вывода плоского списка пакетов существует отдельный API-endpoint https://provapi.24h.tv/v2/doc/provider#!/Packets/get_packets_flat, который выводит список всех доступных провайдеру пакетов с возможностью отфильтровать их по признаку «Базовый». Дополнительно через аргумент includes можно запросить вывод графики каждого пакета (ключ «design»).

Для вывода информации о ПРОМО пакетах используется API - https://provapi.24h.tv/v2/doc/provider#!/Packets/get_promopackets

Для вывода по id информации о ПРОМО пакете используется API - https://provapi.24h.tv/v2/doc/provider#!/Packets/get_promopackets_packet_id

Структура информации о канале

[
   {
     "id": 1, -- Идентификатор канала
     "name": "Первый канал", --- Название канала
     "num": 1, -- номер кнопки
     "hd": false, -- признак HD или SD качество канала
     "archived_days": 14 -- Количество дней доступных в архиве
     "cover": [...] -- логотипы каналов для разных бэкграундов
   },
.....
]

Для получения списка категорий со списком каналов запрос к API - https://provapi.24h.tv/v2/doc/provider#!/Channels/get_channels_categories

[
  {
    "id": 0, -- Идентификатор категории
    "name": "string", -- Название категории
    "icon": "string", -- Иконка категории
    "age": 0, -- Ограничение по возрасту
    "images": [...] -- Список картинок для категории
    "channels": [...] -- Список каналов включенных в категорию
  },
...
]