Pull to refresh

Интеграция сайта с Facebook через OpenGraph

Reading time4 min
Views12K
Facebook OpenGraphВыменивая у агрегаторов контента (поисковых машин, социальных сетей и прочих сервисов) «продовольствие» на пользовательский трафик, издатель постоянно задается вопросом: не станет ли агрегатор основным источником информации для моего пользователя? Потерять свою идентичность в общей каше медиа-ресурсов, отдать результаты производства бесплатно и ничего не получить взамен — риски, которые зачастую сдерживают медиа-менеджеров в решении о максимальной публичности и открытости.

В этом смысле анонсированная Facebook поддержка OpenGraph кажется несколько провокационной. Технология позволяет сайтам экспортировать в социальную сеть профили всех объектов, которые они освещают – персоны, локации, товары, организации, произведения искусства и т.д. Пользователь, подписавшись на любой из этих объектов, сможет получать информационные сообщения в NewsFeed, увидит эти объекты в своих интересах и результатах поиска. Facebook предоставил удивительные возможности, но в то же время заставил серьезно задуматься о дальнейшей судьбе stand-alone media.

Sports.ru оказался первым российским сайтом, который ввязался в эту авантюру =) Какую задачу мы решаем с помощью OpenGraph и с какими проблемами столкнулись — в продолжении статьи об интеграции медийного проекта c социальной сетью.

Весь редакционный контент Sports.ru нанизывается на теги, многие из которых являются энциклопедическими объектами: содержат фотографию, досье, географическую локацию, статистику спортивных выступлений и т.д. Например, новость про финансовую помощь «Лукойла» и «Газпрома» при переходе на систему «осень-весна» привязана к тегам Сергей Фурсенко, премьер-лига, РФС, первый дивизион, Газпром, второй дивизион, Лукойл. Каждый тег обладает персональной страницей, на которой собирается вся информация по объекту.

Мы предлагаем пользователю Facebook подписаться на новости любого из наших тегов (к слову, сейчас их больше 50 000), нажав на кнопку «Мне нравится», и получать превью текстов и фотографий выбранной тематики в свой NewsFeed.

Чтобы такая подписка заработала, мы решили следующие задачи:

1. Добавили meta-теги OpenGraph на страницы тегов
Meta-теги OpenGraph позволяют нам рассказать Facebook об объекте: имя, его фотография, тип объекта (команда, спортсмен, турнир, функционер и т.д.), энциклопедические и технические данные. Например, для страницы футбольного клуба Спартак www.sports.ru/tags/1044511.html это описание выглядит так:

Meta-теги Facebook OpenGraph в исходном коде странице Спартак на Sports.ru

На этом этапе для проверки OpenGraph-страниц рекомендую использовать Facebook Url Linter.

2. Добавили кнопки «мне нравится» на страницы тегов
Используется стандартный код Like Button, ничего специфичного.

Кнопка Facebook Мне нравится на странице тега сборной Уругвая на Sports.ru

Когда первый пользователь нажмет кнопку «мне нравится», Facebook проверит страницу на наличие meta-тегов OpenGraph и автоматически занесет ее в список Facebook Pages. Хотя эта страница обладает внутренним идентификатором Social Graph ID, ее физический адрес вынесен за пределы Facebook: в пространство провайдера OpenGraph-объектов.

OpenGraph-страница Спартак в интересах пользователя Facebook

Через какое-то время (точнее, через определенное количество подписчиков на страницу) объект фиксируется в социальном графе и начинает отображаться в результатах поиска.

OpenGraph-страница Спартак в результатах поиска Facebook

3. Создали приложение публикации новостей
После того, как OpenGraph-страница зафиксировалась в социальном графе, можно публиковать на ее стене анонсы. Доставлять контент «залайкавшим» наши теги подписчикам можно руками, а можно автоматически. Естественно, мы пошли вторым путем. Зарегистрированное приложение работает на стороне Sports.ru: выбирает свежие материалы сайта, разбивает их по тегам и публикует новости на стенах соответствующих OpenGraph-страниц, используя Graph API и stream.publish. Как только на Sports.ru появляется новость, статья или фотография, привязанная к одному из наших OpenGraph-тегов, приложение сразу же публикует контентную единицу на стене соответствующей страницы. «Залайкавший» пользователь увидит в своей ленте вот такое сообщение:

Новости Sports.ru в ленте Facebook, опубликованные через OpenGraph

Разрабатывая всю механику проекта, мы наткнулись на проблемы, решать которые нам еще предстоит в ближайшее время:

1. Отсутствует интерфейс мониторинга подписок
Facebook не предоставляет какого-либо интерфейса для мониторинга подписок на OpenGraph-страницы в рамках одного приложения. Поэтому нам придется самостоятельно реализовать внутренний сервис сбора статистики по нашим тегам (число подписчиков в Facebook, объем выгружаемой информации, количество переходов и т.д.)

2. Дублирование информационных сообщений
В ходе разработки мы наткнулись на логическую проблему: т.к. к новостям могут привязываться несколько тегов, а пользователь — подписаться на несколько тегов, то в его ленте могут оказаться продублированные сообщения:

Продублированные новости Sports.ru в ленте Facebook, опубликованные через OpenGraph

К сожалению, решить эту проблему можно только со стороны Facebook: «схлапывать» одинаковый контент, полученный с нескольких стен. Проблему обещают решить в IV квартале 2010, когда завершится проект под кодовым названием «minifeed2».

3. Статьи – тоже объекты OpenGraph!
Необходимо добавить meta-теги OpenGraph на страницы нашей статей, после чего они появятся в результатах поиска Facebook. Естественно, периодические публикации через stream.publish для статей не имеют смысла.

Проект мы запустили месяц назад без какого-либо анонсирования, и пока что о результатах, выраженных в переходах и проявлениях «вирусности», говорить рано. Об этом, я думаю, мы напишем отдельно, через пару месяцев эксплуатации. В любом случае, наши ожидания от грядущего эффекта самые оптимистичные =)
Tags:
Hubs:
Total votes 50: ↑45 and ↓5+40
Comments19

Articles

Information

Website
www.sports.ru
Registered
Founded
Employees
201–500 employees
Location
Россия