ВКонтакте и блог
Обновлено
Подключение ВКонтакте
API-ключ, токен или авторизация аккаунта VK в плагине не настраиваются. Добавьте ссылки в «Магазин → VK видео» и сохраните плейлист.
Из ссылки извлекаются идентификаторы владельца и видео. Для получения метаданных сервер магазина делает GET-запрос к странице встроенного плеера:
https://vk.com/video_ext.php?oid=<идентификатор владельца>&id=<идентификатор видео>&hd=1В этом запросе передаются идентификаторы ролика и HTTP-заголовки, имитирующие браузер. Название и описание плейлиста, сведения о покупателях и заказах этот код не отправляет. В базу сохраняются исходная ссылка, полученные название, описание, URL превью и плеера, а также служебные сведения о попытках получения.
При показе стандартного блока браузер посетителя загружает изображения по сохранённым URL. После нажатия на превью браузер обращается к плееру vk.com, который загружает видео со своей стороны.
Когда обновляются метаданные
Запросы выполняются при сохранении плейлиста. Для нового ролика плагин сначала ищет метаданные в других плейлистах. Если найдена запись с признаком полученных данных и непустым названием, данные переиспользуются.
Для уже сохранённого ролика повторное получение выполняется, если:
- данные не отмечены как полученные;
- отсутствует название или превью;
- число сохранённых попыток получения не меньше трёх и с последней попытки прошло больше семи дней.
Последнее условие тоже проверяется при сохранении плейлиста. Отдельных заданий cron/CLI для фонового обновления в продукте нет. Настройка «Кэш, секунд» не управляет этими условиями.
Один запуск получения метаданных делает до трёх HTTP-попыток с паузой 1,5 секунды между ними. Таймаут запроса в коде — 30 секунд. Получение заканчивается раньше, если найдены и название, и изображение. Поэтому отсутствие описания само по себе не вызывает повторное получение при последующем сохранении.
Вставка в запись блога
- Установите приложение «Блог», если его ещё нет.
- Создайте и сохраните плейлист в «Магазин → VK видео».
- Вставьте в текст записи следующий шорткод, заменив
1ID плейлиста:
[ewshopvkvideos playlist=1]- Сохраните запись и проверьте её на публичной странице блога.
Плагин обрабатывает текст записей на событии prepare_posts_frontend приложения «Блог» и заменяет шорткод HTML-блоком. Специального переключателя для этой интеграции нет. Включать Smarty в блоге для шорткода не требуется: если режим Smarty уже включён, обработчик сам оборачивает вставляемый HTML в {literal}.
Соблюдайте точную форму: один пробел перед playlist, целочисленный ID без кавычек и без пробелов вокруг =. Если плейлист не найден, шорткод останется в тексте. Если плейлист найден, но видео в нём нет, обработчик всё равно выводит его шаблон — возможно, только заголовок и описание.
В обычных текстовых полях магазина этот шорткод не обрабатывается. Для шаблона магазина используйте Smarty-хелпер.
Диагностика для разработчика
Сообщения о запросах, распознавании ссылок, метаданных и ошибках хелпера записываются в:
wa-log/shop/plugins.logИщите записи с префиксом [ewshopvkvideos]. Для проблем с плеером проверьте консоль браузера и разрешение загрузки iframe с vk.com в политике CSP сайта. При отсутствии превью стандартный шаблон не создаёт область нажатия для запуска плеера.