5. Интеграция Smarty с внешними системами и сервисами¶
5.1. API для разработчиков¶
Актуальная документация по API-методам в базе знаний продукта на сайте: https://microimpuls.com/docs/smarty/extra/api
5.1.1. Примеры кода¶
- Библиотека на Python, реализующая Billing API: https://github.com/microimpuls/smarty-billing-api-python
- Скрипт интеграции с биллингом Гидра: https://github.com/microimpuls/admin-tools/tree/master/hydra_billing_script
Примечание
Смотрите также другие дополнительные инструменты
5.2. Интеграция с биллинговой системой¶
Актуальная документация о возможностях интеграции с внешним биллингом оператора в базе знаний продукта на сайте https://microimpuls.com/docs/smarty/external-billing-integration
5.3. Встраивание модулей в сайт¶
Актуальная документация по интеграции виджетов на сайт: https://microimpuls.com/docs/smarty/extra-services-integration/site-widgets
5.4. Интеграция с популярными видео-серверами¶
5.4.1. Интеграция с Astra¶
Для интеграции механизма авторизации видеопотоков (стриминг-сервисов) с Astra используется механизм генерации одноразовых токенов для ссылок на поток на стороне сервера Smarty. Astra в момент разбора HTTP Request от абонентского устройства выделяет токен и проверяет его на сервере Smarty на валидность.
Для генерации токена необходимо в маске URL стриминг-сервиса в Smarty добавить переменную $token
в маску URL,
например:
http://streamer.example.com:8080/mychannel/?token=$token
Примечание
Дополнительная информация:
5.4.2. Интеграция с Flussonic¶
Для интеграции механизма авторизации видеопотоков (стриминг-сервисов) с Flussonic используется механизм генерации одноразовых токенов для ссылок на поток на стороне сервера Smarty. Flussonic в момент разбора HTTP Request от абонентского устройства выделяет токен и проверяет его на сервере Smarty на валидность.
Для генерации токена необходимо в маске URL стриминг-сервиса в Smarty добавить переменную $token
в маску URL,
например:
http://streamer.example.com:8080/mychannel/?token=$token
На стороне Flussonic необходимо настроить авторизационный бекенд, указав адрес API-метода StreamServiceTokenCheck на стороне Smarty:
auth_backend main {
backend https://smarty.example.com/tvmiddleware/api/streamservice/token/check/;
}
и в свойствах канала прописать параметр auth
:
stream example {
url hls://example.com/channel/index.m3u8;
title "Channel Name";
auth auth://main;
}
5.4.2.1. Настройка маски URL для архивных записей¶
Для корректной работы функционала постановки Live-трансляций на паузу и перемотки назад из Live необходимо использовать следующий шаблон URL:
http://<host>/$cid/video-$flpbt-$flpdur.m3u8?token=$token
Примечание
Дополнительная информация:
5.5. Интеграция с онлайн-кинотеатрами¶
5.5.1. Интеграция с MEGOGO¶
Smarty содержит модуль для интеграции с онлайн-кинотеатром MEGOGO, который включает в себя следующий функционал:
- Синхронизация фильмов и сериалов MEGOGO со встроенной видеотекой Smarty (наименования, описание, жанры, обложки и т.д.)
- Модель подписки (SVOD)
- Модель покупки отдельных фильмов и сериалов (TVOD)
- Все стандартные функции встроенной видеотеки Smarty (поиск, фильтрация, сортировка, группировка по жанрам и т.д.)
- Прозрачная интеграция в стандартные приложения Microimpuls на разных устройствах - единый интерфейс просмотра ТВ и VOD и других сервисов, привычный для абонента
5.5.1.1. Настройка модуля megogo¶
Для подключения интеграции с MEGOGO необходимо проделать следующие шаги:
- Подключить модуль megogo в конфигурации Smarty в секции INSTALLED_APPS, перезагрузить Smarty и выполнить миграцию данных.
- Создать скрытый тарифный пакет, который будет использоваться для возможности доступа абонентов к каталогу и покупке TVOD или подписке SVOD. Этот тарифный пакет будет автоматически включаться для всех импортированных фильмов для того, чтобы фильм был виден абоненту в каталоге.
- Создать тарифный пакет, который будет использоваться для подписки на пакет фильмов. При покупке SVOD-подписки этот пакет будет подключаться абоненту в Smarty, а при отключении пакета - будет происходить отписка от пакета SVOD.
- В панели администратора в разделе «Общие настройки» -> «Интеграция с API внешних систем» создать новую внешнюю систему:
- указать название (например, MEGOGO)
- выбрать из выпадающего списка класс API
megogo_api_client
- выбрать из выпадающего списка класс API
- выбрать тарифный пакет, созданный на втором шаге. Абоненты, у которых подключен данный тарифный пакет, будут видеть фильмы в видеотеке и иметь возможность их купить (по подписке или транзакционно, в зависимости от параметров фильма в MEGOGO)
- Указать дополнительные аттрибуты внешней системы:
xml_url
- ссылка на XML-файл с каталогом фильмов MEGOGO. Для РФ: http://xml.megogo.net/assets/files/ru/all_mgg.xml
mobile_private_key
- закрытый ключ для мобильных устройств (предоставляется MEGOGO)
mobile_public_key
- открытый ключ для мобильных устройств (предоставляется MEGOGO)
smart_tv_private_key
- закрытый ключ для Smart TV (предоставляется MEGOGO)
smart_tv_public_key
- открытый ключ для Smart TV (предоставляется MEGOGO)
stb_private_key
- закрытый ключ для STB (предоставляется MEGOGO)
stb_public_key
- открытый ключ для STB (предоставляется MEGOGO)
partner_id
- идентификатор партнера (предоставляется MEGOGO)
salt
- ключ, используемый для формирования запроса авторизации в биллинге (предоставляется MEGOGO)
svod_service_id
- идентификаторы сервиса SVOD, используемый для оформления услуги пользователю (предоставляется MEGOGO)
available_tvod_collection_id
- идентификатор коллекции для получения доступных TVOD-обьектов (предоставляется MEGOGO)
tariff_id
- идентификатор тарифного пакета, созданного на 3 шаге, который будет подключен абоненту при активации подписки. Подключенность этого пакета означает наличие подписки на соответствующий пакет SVOD в MEGOGO. При отключении данного пакета у абонента/аккаунта в Smarty, будет автоматически вызван метод отписки от SVOD в MEGOGO.
additional_tariffs_ids
- идентификаторы смешанных тарифных пакетов (объединящих телеканалы и подписку MEGOGO), через запятую. При подключении одного из таких тарифов будет произведена подписка на MEGOGO также, как и дляtariff_id
. При отключении всех таких пакетов будет произведена отписка от MEGOGO также, как и дляtariff_id
.
ignore_customer_balance_check
- при значении1
при покупке контента не будет проверяться баланс абонента. Необходимо при интеграции покупок с внешней биллинговой системой оператора.
typhoid_comment_category_id
- идентификатор жанра-категории, присваиваемый фильму, если он является фильмом с тифлокомментариями. Если данный атрибут указан и фильм имеет тифлокомментарии, то другие категории для него указаны не будут.
sign_language_category_id
- идентификатор жанра-категории, присваиваемый фильму, если он является фильмом с сурдопереводом. Если данный атрибут указан и фильм имеет сурдоперевод, то другие категории для него указаны не будут.
После выполнения всех шагов необходимо произвести синхронизацию конента с помощью management-команды:
python manage.py megogo_sync_content --settings=settings.<settings filename>
Первая синхронизация может занять около получаса в связи со скачиванием обложек, последующие синхронизации проходят быстрее. Для регулярной синхронизации фильмов необходимо добавить вызов команды в crontab. Помимо синхронизации фильмов эта команда также создает подборки контента из базы MEGOGO для импортированных фильмов.
Для команды megogo_sync_content
можно указать флаг --load_actor_info
для загрузки данных об актёрах
со стороны сервиса MEGOGO, однако это потребует больше времени для синхронизации.
После первой синхронизации будут созданы жанры фильмов MEGOGO. Затем необходимо выполнить финальный шаг:
- Создать требуемые жанры видеотеки в Smarty и произвести маппинг жанров MEGOGO к жанрам Smarty в служебной панели администратора по адресу http://smarty.example.com/admin/megogo/megogogenremap/.
При последующей синхронизации фильмов произойдет привязка жанров.
Примечание
Для возможности покупки фильмов, доступных в TVOD, для каждого ключа должна быть подключена данная услуга на стороне MEGOGO.
5.5.2. Интеграция с tvzavr (deprecated)¶
Примечание
Кинотеатр tvzavr более недоступен в рамках Smarty по причине его официального закрытия.
Smarty содержит модуль для интеграции с онлайн-кинотеатром tvzavr, который включает в себя следующий функционал:
- Синхронизация фильмов и сериалов tvzavr.ru со встроенной видеотекой Smarty (наименования, описание, жанры, обложки и т.д.)
- Модель подписки (SVOD)
- Все стандартные функции встроенной видеотеки Smarty (поиск, фильтрация, сортировка, группировка по жанрам и т.д.)
- Прозрачная интеграция в стандартные приложения Microimpuls на разных устройствах - единый интерфейс просмотра ТВ и VOD и других сервисов, привычный для абонента
5.5.2.1. Настройка модуля tvzavr¶
Для подключения интеграции с tvzavr необходимо проделать следующие шаги:
- Подключить модуль tvzavr в конфигурации Smarty в секции INSTALLED_APPS, перезагрузить Smarty и выполнить миграцию данных.
- Создать скрытый тарифный пакет, который будет использоваться для возможности доступа абонентов к каталогу SVOD. Этот тарифный пакет будет автоматически включаться для всех импортированных фильмов для того, чтобы фильм был виден абоненту в каталоге.
- Создать тарифный пакет, который будет использоваться для подписки на пакет фильмов. При покупке SVOD-подписки этот пакет будет подключаться абоненту в Smarty, а при отключении пакета - будет происходить отписка от пакета SVOD.
- В панели администратора в разделе «Общие настройки» -> «Интеграция с API внешних систем» создать новую внешнюю систему:
- указать название (например, tvzavr)
- выбрать из выпадающего списка класс API
tvzavr_api_client
- выбрать из выпадающего списка класс API
- выбрать тарифный пакет, созданный на втором шаге. Абоненты, у которых подключен данный тарифный пакет, будут видеть фильмы в видеотеке и иметь возможность купить подписку на них.
- Указать дополнительные аттрибуты внешней системы:
tvzavr_tariff_id
- значение этого параметра выдаёт tvzavr
plf
- значение этого параметра выдаёт tvzavr
secret
- значение этого параметра выдаёт tvzavr
subscription_tariff_id
- идентификатор тарифного пакета, созданного на 3 шаге, который будет подключен абоненту при активации подписки. Подключенность этого пакета означает наличие подписки на соответствующий пакет SVOD в tvzavr. При отключении данного пакета у абонента/аккаунта в Smarty, будет автоматически вызван метод отписки от SVOD в tvzavr.
После выполнения всех шагов необходимо произвести синхронизацию конента с помощью management-команды:
python manage.py tvzavr_sync_content --settings=settings.<settings filename>
Первая синхронизация может занять около получаса в связи со скачиванием обложек, последующие синхронизации проходят быстрее. Для регулярной синхронизации фильмов необходимо добавить вызов команды в crontab.
После первой синхронизации будут созданы жанры фильмов tvzavr. Затем необходимо выполнить финальный шаг:
- Создать требуемые жанры видеотеки в Smarty и произвести маппинг жанров tvzavr к жанрам Smarty в служебной панели администратора по адресу http://smarty.example.com/admin/tvzavr/tvzavrgenremap/.
При последующей синхронизации фильмов произойдет привязка жанров.
Примечание
Для того, чтобы оформленные подписки продлевались на стороне сервера tvzavr, необходимо также по расписанию
вызывать команду check_accounts
.
5.5.3. Интеграция со Start¶
Актуальная документация: https://micro.im/docs/smarty/external-vod-integration/start
5.5.3. Интеграция со PREMIER¶
Актуальная документация: https://micro.im/docs/smarty/external-vod-integration/premier
5.6. Интеграция с CAS CMS¶
Smarty поддерживает интеграцию с некоторыми системами CAS по модели единой системы управления подписками, при этом портальные приложения и клиенты для приставок и других устройств поддерживают работу с любыми CAS, которые поддерживаются конкретным устройством.
5.6.1. Интеграция с Irdeto¶
Настройки интеграции задаются в файле конфигурации Smarty:
- IRDETO_NATIONALITY
str
- Значение по умолчанию: „RUS“
- IRDETO_REGION_TAG
str
- Значение по умолчанию: „MO“
- IRDETO_HOST
str
- Адрес сервера Irdeto с SOAP API, по умолчанию „http://127.0.0.1:80“
5.7 Интеграция с платежными системами¶
Актуальная документация: https://microimpuls.com/docs/smarty/payments-integration
5.7.1. Интеграция с Payture¶
Актуальная документация: https://microimpuls.com/docs/smarty/payments-integration/payture
5.8. Дополнительные инструменты¶
- Скрипт миграции данных smarty между БД по client_id
- https://github.com/microimpuls/admin-tools/tree/master/smarty_migrate_tool
- Скрипт миграции с OFT Middleware на Microimpuls Middleware
- https://github.com/microimpuls/admin-tools/tree/master/oft_db_migrate_tool
- Скрипт миграции аккаунтов и MAC-адресов с Hydra Billing в Microimpuls Middleware
- https://github.com/microimpuls/admin-tools/tree/master/hydra_migrate
- Скрипт массового создания аккаунтов через Billing API
- https://github.com/microimpuls/admin-tools/tree/master/mass_customer_creator
Примечание
Другие полезные скрипты и утилиты см. в репозитории Microimpuls на Github: https://github.com/microimpuls/admin-tools