Facebook Sharing: Как обновить теги OG при загрузке страницы с помощью AJAX - PullRequest
2 голосов
/ 21 февраля 2012

У меня есть сайт, который загружает все «страницы» и «контент», используя 100% AJAX. Я использую jQuery для обработки AJAX-загрузок.

Проблема, с которой я столкнулся, заключается в том, что я хочу включить ссылку на общий доступ к FB для отдельных страниц проекта (см. Ссылку ниже):

http://www.concrete.ca/#!/work_project.php?project_ID=32

Итак, идея заключается в том, что когда каждый проект загружается через AJAX, я буду использовать jQuery (когда документ уже готов.) Для обновления метатегов OG, которые находятся на странице index.php. Я дал каждому из мета FB OG идентификатор, соответствующий его назначению (например, FB_title). Итак, вот мета OG, которые находятся в заголовке index.php:

<meta id="FB_title" property="og:title" content="Concrete Design Communications" /> 
<meta id="FB_description" property="og:description" content="Internationally acclaimed Toronto-based brand design practice serving a variety of sectors including telecom, luxury retail, fashion, cosmetics, hospitality, publishing, as well as furniture and product design." /> 
<meta id="FB_image" property="og:image" content="http://www.concrete.ca/images/LOGO.png" />

А потом, когда каждая из страниц проекта загружается через AJAX, я хочу обновить «контент» атрибут метатегов. Вдоль этих строк:

$('#FB_title').attr('content', 'Concrete Design: <? print $GA_project_name; ?>');

Проблема в том, что когда я запускаю этот код, я получаю «Ошибка разбора». Кто-нибудь еще сталкивался с этим? Каков наилучший способ обновления метаданных FB OG при загрузке страниц через AJAX?

Я просматривал документы разработчиков FB, но, похоже, нет ничего, что касалось бы этого.

Заранее спасибо за любую помощь.

1 Ответ

1 голос
/ 22 февраля 2012

Линтер Facebook не запускает никакой javascript. Поэтому вам нужно быть уверенным в том, что вы предоставите правильный контент, когда на него придет Facebook.

Вот что вам нужно сделать. Два варианта. Либо работает, и было доказано, что работать с другими производственными веб-сайтами. J

  • Укажите URL AJAX в коде плагина Like. У вас есть специальный обработчик на вашем веб-сервере, когда он видит запросы от линтера Facebook. Пользовательский агент скребка: "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)". Затем ваш сервер может проанализировать хэш-запрос и обработать определенные метатеги og для этого содержимого. Это называется перезаписью URL и может быть сделано через .htaccess.

  • Укажите канонический URL в коде плагина Like. Этот канонический URL уникален для каждого фрагмента контента, который может быть отображен, например, прямой вызов http://www.concrete.ca/work_project.php?project_ID=32 (без взлома хеша), который отображает правильные мета-теги og :.

...