Можно ли сделать «Якорную навигацию» - Facebook Conform - PullRequest
2 голосов
/ 17 января 2012

Я создал веб-страницу на основе Ajax.Из соображений совместимости я сделал «Якорную навигацию» для поддержки всех браузеров и кнопок истории.

Теперь у меня есть такие ссылки: http://www.harddance.at/#!/newsdetails/62/HoH+weibliche+Acts+bestaetigt

Когда пользователь публикует эту ссылкув Facebook это выглядит так:

enter image description here

У меня есть "? _escaped_fragment_?"в ссылке-описании.А Facebook разбирает неверный контент.

Извините за мой плохой английский.

Ответы [ 3 ]

2 голосов
/ 17 января 2012

Я бы посмотрел, какую информацию я получу из этого вопроса OpenGraph на веб-сайте Ajax


Разметка Open Graph должна присутствовать на HTML-страницах, которые можно получить с помощью чистого HTTP.

Это потому, что когда пользователь взаимодействует с объектом OG (например, выполняет действие и т. Д.), Facebook выполняет HTTP GET для URL OG и ожидает, что теги OG будут возвращены в разметке.

Решение заключается в создании канонических URL для каждого из ваших объектов.Эти URL содержат базовую разметку HTML, включая теги OG.

При запросах к этим URL-адресам, если вы видите входящую строку useragent, содержащую 'facebookexternalhit', вы визуализируете HTML.Если вы этого не сделаете, вы обслуживаете 302, который перенаправляет на ваш адрес ajax.На URL ajax ваши кнопки лайков и любые публикуемые вами действия OG должны указывать на канонический объект URL

Пример:

Как пользователь, я нахожусь на http://yoursite.com/#!/artists/monet. Iнажмите кнопку «лайк» или опубликуйте действие, но параметр href кнопки «лайк» или URL-адрес объекта при публикации действия должны быть каноническим URL-адресом объекта, доступным в Интернете, - в данном случае, возможно, http://yoursite.com/artists/monet

Когда пользователь, использующий браузер, нажимает http://yoursite.com/artists/monet, вы должны перенаправить их на http://yoursite.com/#!/artists/monet,, но если входящий пользовательский агент говорит, что это скребок Facebook, вы просто возвращаете разметку, которая представляет художника Моне.

Примеры из реальной жизни см. В Deezer, Rdio и Mog, которые все используют этот шаблон проектирования.

0 голосов
/ 20 января 2012

Теперь я вижу следующие «факты»:

Facebook создает параметр GET с элементами после «/ #! /». Таким образом, я могу создавать страницы «OpenGraph» для сканера Facebookи я решил свою проблему! Совет с собственными страницами «OpenGraph», который я получаю с: OpenGraph на веб-сайте на основе Ajax

Крис

если(isset ($ _ GET ['_ escaped_fragment_']) и preg_match ("/ facebookexternalhit / is", $ _SERVER ['HTTP_USER_AGENT'])) {

$link_details = explode("/", strip_tags(html_entity_decode($_GET['_escaped_fragment_'])));

$show_page = $link_details[1];
$show_id = urldecode($link_details[2]);
$show_title = urldecode($link_details[3]);


      // Eventdetails
      if($show_page=="eventdetails") {
          include("./includes/opengraph_eventdetails.php");
      }


      // Newsdetails
      if($show_page=="newsdetails") {
          include("./includes/opengraph_newsdetails.php");
      }


exit();
}
0 голосов
/ 17 января 2012

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

http://facebook.stackoverflow.com/a/8887746/558021

Я подозреваю, что проблема вызвана отсутствием og:tags.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...