Вставка карточек Дзена на сайте с помощью oEmbed — проверка концепции

Недавно, когда я писал новую статью на сайте, я решил сослаться на одну из предыщущих публикаций в Дзене. Я вставил ссылку на статью, и она преобразовалась в некрасивый блок, извещающий о том, что «содержимое не может быть встроено».

Если нажать на кнопку «Конвертировать в ссылку», то получится обычная текстовая ссылка — скучная и некрасивая.

Но, если если вставить в редакторе сайта ссылку на видео с YouTube, картинку с Flickr или даже на статью с другого сайта WordPress, то получится симпатичный блок с превью публикации.

Происходит это благодаря технологии oEmbed, предназначенной именно для того, чтобы без дополнительных ухищрений (вроде копирования HTML-кода вставки) отображать на сайтах превью контента со сторонних сайтов.

Эта технология была разработана в 2008 г. при участии представителя платформы Flickr (это соцсеть с фотографиями, если вы не в курсе) и довольно быстро её стали поддерживать все популярные платформы.

Об отображении превью публикаций Дзена

Дзен не поддерживает технологию oEmbed. Вместо этого в Дзене выбрали поддержку другой технологии — Open Graph. Если вы заглядывали когда-то в исходный код публикаций Дзена, то могли встретить там мета-теги og:title, og:description и т.д.

Эти теги используются для отображения превью публикации в соцсетях и мессенджерах.

Open Graph, правда, обладает рядом ограничений:

  • Они позволяют отображать только статический контент — видеоплеер так не передать. Дзен специально генерируют слайдшоу в качестве превью для видео.
  • Для того, чтобы на платформе отобразилось превью, необходимо прочитать содержимое HTML-страницы публикации.

Последнее создаёт проблемы для ситуаций, когда ссылка обрабатывается не на стороне клиента, а на стороне сервера. Из-за защиты от ботов веб-сервер не может прочитать страницу, чтобы проанализировать og-теги.

Собственно, с этой проблемой я столкнулся, когда начал писать плагин для WordPress, который бы отображал карточки превью.

Технология oEmbed более гибкая — она позволяет разместить на странице стороннего сайта не просто текст и картинку, т.е. заголовок и картинку, но даже встроить видеоплеер.

Например, сейчас, чтобы вставить видео с Дзена куда-то, вам предлагают HTML-код, который вы можете использовать лишь на своём собственном сайте — другие платформы его не поддерживают.

И поэтому, на мой взгляд, в Дзене обязательно должны добавить поддержку oEmbed. В поддержку я уже написал, меня заверили, что рассмотрят это предложение.

Проверка концепции — поддержка oEmbed для Дзена

Я решил попробовать реализовать поддержку отображения превью для своего сайта.

Для этого написал веб-сервис, который создаёт данные oEmbed для статей в Дзене (с постами и видео пока решил не разбираться), а также плагин для WordPress, который реализует отображение этих карточек.

Получилось, на мой взгляд, очень неплохо (так преобразилась ссылка, о которой я писал в начале статьи):

Я пока не проверял, как это будет работать вместе с плагином RSS-трансляции публикаций в Дзен. Сделаем это сейчас 😉

Дополнение. В Дзен карточка передалась в виде картинки с подписью, но без ссылки. В целом это можно решить на уровне плагина, формирующего RSS-ленту для Дзена.

В заключение, хочу сказать, что я не планирую (во всяком случае пока) выпускать плагин в публичный доступ. На мой взгляд, реализация oEmbed-сервиса собствеными силами — это не самая лучшая идея. Поэтому данное решение я рассматриваю, как проверку концепции.

Надеюсь, в будущем поддержка oEmbed появится в Дзене и будет работать без каких-то дополнительных ухищрений.

Игорь:

This website uses cookies.