このアプリは、実際の Facebook ページを指す Like ボタンをレンダリングします。ただし、いいねボタンの href を FB の URL に直接ポイントする代わりに、opengraph エンドポイントを介してサーバーを介してプロキシします。これらのエンドポイントがいつ使用されるかについてより詳細な分析を行うことができるため、これは役に立ちます (とりわけ)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta property="fb:app_id" content="158708354177049" />
<meta property="og:site_name" content="BandPage" />
<meta property="og:url" content="http://www.facebook.com/stormystrongmusic" />
<meta property="og:type" content="band" />
<meta property="og:title" content="Stormy Strong" />
<meta property="og:description" content="..." />
<meta property="og:image" content="https://graph.facebook.com/20501829906/picture" />
<title>Stormy Strong</title>
<link rel="canonical" href="http://www.facebook.com/stormystrongmusic"/>
</head>
<body>
</body>
</html>
og:url とリンク rel="canonical" の両方が実際の Facebook ページを指していることに注意してください。実際には、Facebook のデバッガーを介してリンクを実行しようとすると、うまく動作するように見えます: https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.bandpage-s .com%2Fogp%2F11601543111380992
ただし、一定の時間が経過すると、[いいね] ボタンがページに解決されないように見えるという問題があります。これにより、いいねカウントがオフになり、ページが既に気に入っている場合はボタンが「いいね」されなくなります。上記の OG デバッガーの URL に移動して手動で再スクレイプをトリガーすると、しばらくの間、問題が解決します。
明らかに、これらのスクレイピングを手動で再トリガーすることは、支持できる解決策ではありません。ここで複数のスクレーパーの動作が発生していますか? デバッガーでトリガーされるスクレイパーは、定期的に自動的に再スクレイピングするスクレイパーとは異なるようです。
なぜこれが起こるのですか?ここで ogp エンドポイントの「仲介者」を取り除く以外に、これを回避するためにできることはありますか? これは og:url の完璧な活用のようです。