3

Facebook 共有キャッシュのタイムアウト時間。すべてのページを編集したので、変更を反映する必要があります。

タイムアウトが無制限の場合、curl などを使用してすべてのページをデバッグする必要があります。

ありがとう。

4

2 に答える 2

2

Debuggerを使用して、facebook キャッシュを手動で「クリア」できます。

そこに移動して、変更した URL を入力し、[デバッグ] をクリックします。これにより、Facebook ボットは、既にフェッチおよびキャッシュされている場合でも、サーバーからデータを要求し、新しいデータが古いデータに置き換わります。


編集

800kページは間違いなくたくさんあります。

いいねボタンのドキュメントによると:

Facebook は 24 時間ごとにページをスクレイピングして、プロパティが最新であることを確認します。Open Graph ページの管理者が Like ボタンをクリックしたとき、および URL が Facebook URL Linter に入力されたときにも、ページがスクレイピングされます。Facebook は、URL のキャッシュ ヘッダーを観察します。「Expires」と「Cache-Control」を優先順に調べます。ただし、より長い時間を指定しても、Facebook は 24 時間ごとにページをスクレイピングします。

(URL リンターはデバッガーです)

しかし、私の経験からすると、常にそうであるとは限りません。パターンは見つかりませんでしたが、数か月前のデータに遭遇し、手動でデバッガーを使用して新しいデータを抽出するまでキャッシュがクリアされませんでした。

それでも fb のデータを手動で更新したい場合は、デバッガー ページの同じフォーム アクションに URL を投稿するスクリプトを作成できます。csrf 保護を使用しているとは思いません。そうすれば、すべてのページでこのアクションを自動化できます。時間がかかる場合がありますが、それほど深刻ではありません.

于 2012-04-11T12:14:09.320 に答える
0

共有ポップアップを作成するために使用window.open('https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(url_to_share))していましたが、何をしても、キャッシュされた共有は次の操作を行うまでクリアされませんでした:

  • 共有しようとしている URL を Facebook URL Linter に入力します。
  • 「共有プレビュー」まで下にスクロールします
  • 「共有ダイアログでこれを見る」をクリック
  • そのページから URL をコピーします
  • そのURL を window.open( [ put the url here] ) ポップアップに入力すると出来上がりです!
于 2014-06-18T13:31:39.807 に答える