VK Video: интегрируем как oembed provider source в Drupal

Еще один oembed провайдер, который мне понадобился не давно — VK VIDEO. Нужно было интегрировать видео с ВКонтакте в медиа библиотеку Drupal.

Если бы VK предлагали oembed endpoint, как многие ombed провайдеры, то настройка свелась бы просто к заданию конфигурации кастомного провайдера /admin/config/media/oembed-providers/custom-providers.

Т.е. мы бы ограничились установкой модуля oembed_providers.

Но VK предоставляет oembed данные через VK API. И этот подход требует создания web api, используя бизнес аккаунт. Дальше можно создать локальный endpoint, через который транслировать oembed json пакет как будто это и есть oembed провайдер.

Для реализации этого механизма я создал модуль vkoembed.

Модуль добавляет в список oembed провайдеров — VK Video, а также выступает в роли oembed провайдера. Но чтобы он мог обращаться к VK API, нужен сервисный ключ доступа.

Создание VK web app

Чтобы этот ключ получить, нужно зарегистрировать бизнес аккаунт в VK и «формально» создать т.н. web приложение.

Я говорю «формально», потому что само приложение уже создано (в виде drupal модуля), и нам требуется лишь формализовать доступ к VK API. Сервисный ключ определяет квоты и ограничения, которые будет накладываться на доступ к API. К примеру, в текущий момент базовое ограничение на количество запросов составляет 5 запросов в секунду.

Если ваш сайт требует больше/чаще обращаться за oembed информацией к VK, то возникнут определенные сложности, но вы можете расширить квоты, оплатив их согласно тарифам VK.

К счастью, модуль media, через который будут проходить данные, кеширует полученные oembed пакеты. И пока вы не сбросите кеши сайта, после которого могут массово запрашиваться данные из oembed провайдеров, проблем не возникнет.

При регистрации web app вам нужно будет указать базовый домен и доверенный redirect url. Можете указать домен/url вашего сайта. Эти настройки не важны для работы модуля, они нужны для пользовательской авторизации VK (если она используется приложением).

Каких то особых настроек/разрешений для созданного web app не требуется. Возможно, это изменится в будущем.

Возможные проблемы

Помимо очевидных квот, которые определяет VK API. Можно столкнуться с проблемами при тестировании интеграции на локальном сервере. Drupal предъявляет строгие требования к oembed провайдерам, и если если вы используете ssl (https) протокол на локальном сервере, то он вероятнее всего является self-signed.

Такие сертификаты не являются доверенными, и Drupal не будет читать информацию из такого oembed провайдера.

Настройка media type

У нас создан web app, получен сервисный ключ, установлен модуль vkoembed. Какой алгоритм действий дальше?

Настройка плагина vkoembed

Единственная настройка — прописать ключ. Это делается на странице /admin/config/vk_api/settings. Ключ становится частью конфигурации.

Создание ведра

Провайдеры, для использования в media type объединяются в т.н. buckets. Потому нам нужно подключить VK Video в какое то из них, или создать новый bucket.

/admin/config/media/oembed-providers/buckets

Если VK video не появился в списке, то попробуйте сбросить кеш вот на этой странице — /admin/config/media/oembed-providers. oembed-providers использует какой то свой кеш для списка провайдеров, и общая команда сброса кешей его не затрагивает.

Настройка media type

Теперь можно создать/обновить media type, который будет принимать данные в том числе из VK Video. При настройке, в качестве media source выбирайте созданное ранее ведро. И нужно будет отметить конкретно какие провайдеры из этого ведра разрешены.

Итог

Как результат всех действий вы сможете создавать media элементы вроде:

В моём проекте в bucket еще находится rutube провайдер, потому тип медиа называется Rutube/VK videos.

VK предоставляет все необходимые oembed данные, т.е. html код и данные о миниатюре, в общем, всё, что требуется для рендеринга.

Написать комментарий

Мало букафф? Читайте есчо !

Фильтр по годам во views

Март 19, 2025 г.

Задача проста - есть материалы, у которых есть поле даты (timestamp), нужно вывести кнопки фильтрующие список по годам. Дополнительно задача ...

Читать

Как получить определения из конфигурационных файлов схем Drupal

Апрель 6, 2025 г.

Drupal config API позволяет не только прочитать сами настройки, но и файлы их определений. В общем то это очевидно, покажу как это делается. Допустим ...

Читать

 

Комментарии к «VK Video: интегрируем как oembed provider source в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: