» » » Используем oEmbed, чтобы добавить телефон в хабрапост

 

Используем oEmbed, чтобы добавить телефон в хабрапост

Автор: admin от 19-12-2016, 11:00, посмотрело: 5205

Используем oEmbed, чтобы добавить телефон в хабрапостНеделю назад произошло очередное улучшение Хабра, и кроме всего прочего, была добавлена возможность вставлять контент с помощью механизма oEmbed. Я хочу немного рассказать, что это за зверь, и продемонстрировать, как он работает с чем-нибудь популярным, вроде jsFiddle, чтобы добавить в хабрапост необычное. Например — телефон.



Что такое oEmbed? Это соглашение, благодаря которому можно вставить кусок одной страницы на другую. В мире веба для такой задачи предназначена технология iframe, но в ее использовании есть нюанс: она встраивает содержимое сайта целиком. А сайты, на секундочку, рассчитаны на то, чтобы занимать большую часть экрана вашего компьютера или телефона, а не встраиваться. Разработчики это понимают, и довольно давно у нас есть несколько соглашений по встраиванию. Три самых популярных: Open Graph Protocol, Twitter Cards и oEmbed. Кроме них есть еще сотни менее популярных, но в основном используется именно эта тройка.

Работают они по-разному. Чтобы соответствовать «Open Graph Protocol», веб-странице нужно разместить в своем HTML-коде несколько meta-тегов вроде og:title, которые опишут минимальное представление страницы для встраивания. Обычно это заголовок, картинка и несколько строк краткого описания. Сайт, куда происходит встраивание (к примеру, пост фейсбука), создаст соответствующие HTML-элементы сам. От «донора» требуется только информация по содержимому. oEmbed работает по-другому. Чтобы соответствовать oEmbed, сайт должен «предоставить» некий URL, по которому делается запрос о встраивании. Обратите внимание, что «предоставить» у меня в кавычках. На практике «предоставить» значит иметь под рукой большой whitelist доменов и соответствующих им URL для запросов. «Более 1800» в анонсе хабра и есть размер такого белого списка. В соглашении есть альтернативный вариант «oEmbed Discovery», когда в HTML-теге на веб-странице прописывается URL для запроса информации. Но Хабр, судя по всему, этот механизм не поддерживает. Наверное, чтобы всякие особо хитрые товарищи не вставляли таким образом трекающие пиксели и прочее забавное с собственных сайтов.

В ответ на запрос о встраивании oEmbed, сайт должен вернуть JSON с необходимой информацией. Например, информацию о картинке и тексте. Но чаще всего возвращают URL, который можно вставлять через iframe. Что выгодно отличает oEmbed от «Open Graph Protocol» и позволяет встроить всё что угодно, начиная от плеера YouTube и заканчивая JSFiddle.

Используем oEmbed, чтобы добавить телефон в хабрапостВот JSFiddle я и продемонстрирую: теперь можно вставлять прямо в статьи разнообразные HTML/CSS/JS демки и показывать интересные технологии. В «external resources» слева можно добавить необходимые javascript библиотеки. Например, дебагер, чтобы видеть результаты, console.log или наш SDK, чтобы звонить с веб страницы:

<iframe src="https://jsfiddle.net/grigoryvp/ahj8b02c/embedded/" frameborder="0" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"></iframe>


Чтобы позвонить и услышать «Привет, Хабр!», нужно переключиться на вкладку «Result». Не очень user friendly. Но. Многие популярные сайты, поддерживающие встраивание, поддерживают еще и настройку этого встраивания! Гугление показывать, что для JSFiddle есть подробный раздел документации. Следовательно, если мы хотим сразу вкладку «Result», то нам нужно добавить к URL соответствующие настройки:

jsfiddle.net/grigoryvp/rxnj9hcn/embedded/result/

Увы, такого Хабр пока не поддерживает. И пока не совсем ясно — это сто стороны jsfiddle неправильно формируется iframe, или же Хабр неправильно запрашивает URL. Если кто владеет такой магией — пишите в комментариях, будет очень полезно!

Источник: Хабрахабр

Категория: Программирование » Веб-разработка

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *