1

タイトルで述べたように、Facebook js 共有者から特定の画像をブロックする方法はありますか?

Facebook js シェアラーは、ページから画像を自動的に取得し、ユーザーが共有投稿でサムネイルとして表示する画像を選択できるようにします。現時点では、他の画像が表示されていないページで広告画像を取得するという状況があります。

バナーを div の背景画像として表示したり、動的に追加したりすることができると想像できますが、画像を除外するための特別なタグや共有者の初期化オプションがある可能性があります... FB ドキュメントに関連するものが見つかりません。しかし、それらは非常に「具体的」です...

上記を明確にするために、マークアップを見てください。

<!DOCTYPE html>
<html lang="en" 
      xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="https://www.facebook.com/2008/fbml">
 <head>
  <meta property="og:image" content="/logo.jpg">
 </head>
 <body>
  <article>
   ..plain text content
  </article>
  <aside>
   <img src="/banner.jpg"> <!-- fetched image for share, wrong -->
  </aside>
 </body>
</html>

PS: 私はこの質問を読みました: Facebook 共有者から画像を除外する方法- しかし、実際にバナーを動的に追加する (選択された回答) ことは、本来の方法ではありません。

4

1 に答える 1

2

これは、私が別の質問に与えた別の回答の C&P ですが、ここにも当てはまります。

問題の解決策は、実際のユーザーまたは Facebook ボットがページにアクセスしているかどうかを確認することです。ボットの場合は、必要なメタ データのみをレンダリングします。Facebookのドキュメントによると、ユーザーエージェントを介してボットを検出できます。
"facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

コードは次のようになります (PHP の場合):

function userAgentIsFacebookBot() {
    if ($_SERVER['HTTP_USER_AGENT'] == "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)") {
        return true;
    }
    return false;
}
于 2013-10-17T13:32:33.590 に答える