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 код и данные о миниатюре, в общем, всё, что требуется для рендеринга.

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

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

Кастомные настройки сайта в Drupal

Март 9, 2025 г.

На сайте всегда (или почти всегда) возникает задача управления настройками вроде телефон, email, какие то текстовые элементы, вроде копирайта, адрес организации и т.п. С точки зрения данных - требуется объект в терминах шаблонов проектирования - синглтон. ...

Читать

SpecialCharacters плагин в CKE5. Добавляем символы.

Апрель 11, 2025 г.

В CKEditor 5 есть родной плагин, который отображает список спец. символов для вставки в редактор. Он удобен и прост, проблема лишь в том, что он содержит ...

Читать

 

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

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



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