119

リンクを使用しました:

http://www.facebook.com/sharer.php?u=[shared URL]

...特定のページを共有します。ただし、Facebook Sharer はキャッシュされたバージョンの画像とタイトルを使用します。Facebook のキャッシュをすばやくクリアする方法はありますか、またはデータが更新されるまでどれくらい待つ必要がありますか?

<link rel='image_src' href='[preview image]' />タグの間に入れました。

4

10 に答える 10

239

私は自分の問題の解決策を見つけました。あなたはこのサイトに行くことができます:

https://developers.facebook.com/tools/debug

...次に、共有するページのURLを入力し、[デバッグ]をクリックします。メタタグのすべての情報を自動的に抽出し、キャッシュをクリアします。

于 2011-03-10T09:03:16.180 に答える
10

Facebook は各 URL を一意のものとして扱い、その URL に基づいてページをキャッシュします。そのため、最新の URL を共有したい場合、最も簡単な解決策は、共有される URL にクエリ文字列を追加することです。簡単に言えば、URL の末尾に ?v=1 を追加するだけです。1 の代わりに任意の数を使用できます。

帽子のヒント: Umair Jabbar

于 2014-04-22T17:57:27.060 に答える
10

API を使用Facebook にページを再びスクレイピングさせる API はありますか?

$furl = 'https://graph.facebook.com';

$ch = curl_init();

curl_setopt( $ch, CURLOPT_URL, $furl );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POST, true );
$params = array(
    'id' => '<update_url>',
    'scrape' => true );
$data = http_build_query( $params );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );

curl_exec( $ch );
$httpCode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
于 2013-10-17T06:12:47.280 に答える
3

この回答は開発者を対象としています。

キャッシュをクリアすると、この Web ページの新しい共有で、OG タグで提供される新しいコンテンツが表示されます。ただし、作業している URL のインタラクションが 50 未満 (いいね + シェア) の場合のみです。また、Facebook に既に投稿されているこの Web ページへの古いリンクには影響しません。Facebook で URL を再度共有する場合にのみ、Facebook がリンクを表示する方法が更新されます。

catandmouse の答えは正しいですが、graph.facebook.com に投稿リクエストを送信することで、Facebook に OG (OpenGraph) キャッシュをクリアさせることもできます (この回答の執筆時点では、http と https の両方で機能します)。アクセストークンは必要ありません。

graph.facebook.com への投稿リクエストは次のようになります。

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: graph.facebook.com
Content-Length: 63
Accept-Encoding: gzip
User-Agent: Mojolicious (Perl)

id=<url_encoded_url>&scrape=true

Perl では、ライブラリ Mojo::UserAgent を使用して HTTP リクエストを送受信する次のコードを使用できます。

sub _clear_og_cache_on_facebook {
    my $fburl     = "http://graph.facebook.com";
    my $ua        = Mojo::UserAgent->new;
    my $clearurl  = <the url you want Facebook to forget>;
    my $post_body = {id => $clearurl, scrape => 'true'};
    my $res       = $ua->post($fburl => form => $post_body)->res;
    my $code      = $res->code;
    unless ($code eq '200') {
        Log->warn("Clearing cached OG data for $clearurl failed with code $code.");
        }
    }
}

ターミナルを介してこの投稿リクエストを送信するには、次のコマンドを使用します。

curl -F id="<URL>" -F scrape=true graph.facebook.com
于 2016-04-29T09:59:39.423 に答える
3

これらの 2 つのリンクには、問題に関連するものについて幅広い議論があると思います。fb:ref を呼び出してキャッシュをクリアする

fbml.refreshRefUrl

このような

<tt>fbml.refreshRefUrl("http://www.mysite.com/someurl.php")

ここfb:refから関連するものを学ぶことができます。私はそれがあなたのために働くことを願っています

于 2011-03-10T07:05:03.293 に答える
3

これを行うページはhttps://developers.facebook.com/tools/debug/にあり、他の回答のいくつかから少し変更されています。

そこに URL を貼り付けて、[デバッグ] をクリックします。次に、URL テキスト フィールドの下にある [新しいスクレイプ情報を取得する] ボタンをクリックすると、すべての設定が完了します。ページから新しいメタ タグが取得されますが、それらは引き続きキャッシュされるため、変更するたびにこれを行う必要があることに注意してください。これは、メタ タグを操作して FB 共有 URL を facebook 内で希望する形式にフォーマットする場合に非常に重要です。

于 2015-08-27T15:59:06.480 に答える
1

?v=random_string を URL に追加します。このアイデアを Facebook 共有で使用している場合は、応答の og:url パラメータが共有している URL と一致していることを確認してください。これはグーグルプラスでも動作します。

Facebook の場合、https: //graph.facebook.com への投稿リクエストを行うことで、再クロールを強制することもできます。

{id: url,
scrape: true}
于 2016-01-23T18:38:32.073 に答える
0

キャッシュプラグインでワードプレスを使用している場合は、すべてのキャッシュをクリアしてください。また、使用している画像が Facebook の推奨サイズ (幅 1200 x 高さ 630 または 600 x 315) であることを確認してください。

于 2016-09-01T08:42:13.810 に答える