Ответ 1
Если все пошло на искривленный результат, попробуйте получить новую информацию об утилизации с помощью Facebook Debugger.
Это связано с тем, что Facebook использует свой собственный кеш для og: data.
Я пытаюсь интегрировать кнопку общего доступа Facebook на сайт моего работодателя, название, URL, описание/ввод все отображаются правильно, однако изображение не прикрепляется. Когда открывается диалоговое окно совместного доступа, контейнер изображений мерцает, а затем исчезает, как будто facebook пытается обработать изображение, но не работает.
Я использую og: изображение и отношение ссылки, чтобы попытаться указать изображение для использования для общих ссылок:
<meta property="og:image" content="/images/logo_white_150px.png" />
<link rel="image_src" type="image/png" href="/images/logo_white_150px.png" />
Это изображение использовалось для работы (оно масштабировалось соответствующим образом), но больше не работает, я также пробовал другие изображения разного размера и формата без везения.
Здесь открытые метатеги, которые я использую в заголовке:
<!DOCTYPE html>
<html xmlns:fb="http://ogp.me/ns/fb#" itemscope itemtype="http://schema.org/Article" xmlns:og="http://ogp.me/ns#">
<head>
<meta property="og:type" content="landing page" />
<meta property="og:title" content="Social Media Test Page" />
<meta property="og:description" content="This is a page for testing the behavior of social media buttons..." />
<meta property="og:image" content="/images/logo_white_150px.png" />
<link rel="image_src" type="image/png" href="/images/logo_white_150px.png" />
<meta property="og:image:type" content="image/png" />
<meta property="og:url" content="<%=shortUrl%>" />
<meta property="og:site_name" content="site name" />
<meta property="og:medium" content="mult" />
</head>
Здесь JavaScript, который я использую в начале тела:
<body>
<script type="text/javascript">
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
</script>
...
И вот как я использую кнопку:
<div class="left" style="text-align: center;">
<a name="fb_share" type="button" share_url="<%=shortUrl%>">Share</a>
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>
</div>
Любая помощь очень ценится, спасибо заранее Крис.
Если все пошло на искривленный результат, попробуйте получить новую информацию об утилизации с помощью Facebook Debugger.
Это связано с тем, что Facebook использует свой собственный кеш для og: data.
Не видя HTML-вывод из вашего кода, я мог только догадываться о проблеме.
Не используйте относительный url как <%=shortUrl%>
, но обязательно используйте полностью квалифицированный Url.... то, что имеет http (s)://на нем.
Кроме того, http://developers.facebook.com/docs/share/ говорит, что эта кнопка share устарела. Вместо этого перейдите к использованию кнопки Like: http://developers.facebook.com/docs/reference/plugins/like/
По моему опыту:
Перенаправление основного URL очень сложно, вы должны абсолютно уверенно, что ваш контент правильно (и полностью) извлечен, для сложного динамического контента я часто в конечном итоге делаю обнаружение в .htaccess, чтобы обслуживать соответствующий контент FBs следующим образом:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} facebookexternalhit/[0-9]
RewriteRule ^(.*)$ OG_GENERATOR_SCRIPT_HERE.php [L,QSA]