Facebookクローラーは、リンクをコピーして貼り付けるか、Facebookソーシャルプラグインを使用することにより、Facebook上でシェアされたアプリまたはウェブサイトのHTMLをクロールします。クローラーは、アプリまたはウェブサイトに関する情報(タイトル、説明、サムネイル画像など)を収集し、キャッシュに保存し、表示します。
Range
ヘッダーで指定されたバイトに従ってすべての必要なプロパティを含む応答を生成して返すか、Range
ヘッダーを完全に無視する必要があります。Facebookクローラーユーザーエージェント文字列:
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
facebookexternalhit/1.1
facebookcatalog/1.0
クローラーが使用するIPアドレスの最新リストを取得するには、次のコマンドを実行します。
whois -h whois.radb.net -- '-i origin AS32934' | grep ^route
IPアドレスは頻繁に変化します。
... route: 69.63.176.0/21 route: 69.63.184.0/21 route: 66.220.144.0/20 route: 69.63.176.0/20 route6: 2620:0:1c00::/40 route6: 2a03:2880::/32 route6: 2a03:2880:fffe::/48 route6: 2a03:2880:ffff::/48 route6: 2620:0:1cff::/48 ...
クロール時にアプリまたはウェブサイトのコンテンツがアクセス可能でなかった場合は、アクセス可能になってからシェアデバッガーツールを通じてURLを渡すか、シェアAPIを使用することにより、クロールを強制的に実行させることができます。
次のコードを使用して、クローラーリクエストをシミュレートできます:
curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "$URL"