Facebook Sharerのキャッシュをクリアする方法は?


115

私たちはリンクを使用しました:

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

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

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

回答:


237

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

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

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


1
同じことをjavascriptで自動的に行う方法はありますか?私のサイトには、頻繁に名前を変更できるページがあります。私はFacebookのキャッシュが24時間リセットされるのを待たずに、毎回Facebook Lintにアクセスできません。Facebook Lintへのajaxリクエストを使用してみました(developers.facebook.com/tools/debug/og/object?q= ...をurlとして使用)が、そのq値(上記のurlにパラメーターとして渡される)はAccess-Control-Allow-Originでは許可されていません。
Giovanni Bitliner 2012年

3
それでも更新できない場合は、ランダムなクエリ文字列パラメーターをURLの最後に追加してみてください。
JD Smith 14

2
Fetch new scrape informationボタンをクリックするだけ
IvanRF

2
新しいスクレイピング情報を取得しました...それは正しいデータですが、共有者は古いデータを表示しています。他に何かできることはありますか?
Peege151 16

1
共有に表示される画像に問題がある場合は、画像のURIを変更してみてください。
totymedli 2017年

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 );

10

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

帽子の先端:Umair Jabbar


バージョンごとにカウントされるため、ページが受け取ったリンクの数に影響すると思います。
アンドレ・ラズロ

3

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

fbml.refreshRefUrl

このような

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

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


3

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

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


2

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

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

catandmouseの回答は正しいですが、post requestを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

1

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

Facebookの場合は、https: //graph.facebook.comに投稿リクエストを送信して、強制的に再クロールすることもできます。

{id: url,
scrape: true}

これはまさに私が探していたものです。
Bee

私はポストマンにJSON上記の投稿作品にこれを取得するが、生のテキスト文字列を掲示することはリフレッシュ原因でしたができませんでした:id=http://www.ridr.me&scrape=true
フィリップ・スミ

1

5秒かかる簡単なソリューションをここの関連する投稿に投稿し ました-Facebook デバッガー:サイトキャッシュ全体の

短い回答をクリア ...パーマリンク設定のワープドレスサイトのパーマリンクをカスタムパーマリンクに変更します。アンダースコアを追加しました。
/ _%postname%/
その後、facebookはそれらすべてを新しいURL、新しい投稿としてスクレイピングします。


これはシンプルでクールです。残念ながら、それは不要なリンク名を残します。
ガラヴァーニ

0

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


0

管理されたワードプレスまたはキャッシングプラグインを使用した場合、Facebookデバッガーツールが新しい情報を取得する前にキャッシュをクリアする必要があります!

私は何週間も髪の毛を抜いてきましたが、自分が加えた変更がFacebookデバッガーに24時間表示されない理由を理解しています!!!! 修正方法は、ワードプレスダッシュボードに移動し、上部のgodaddyアイコンをクリックして、[キャッシュをフラッシュ]をクリックすることです。多くの管理されたワードプレスホスティング業者は、それをクリアする方法を理解するためのキャッシュを備えていると思います。


Wordpressのキャッシュをクリアしても問題は解決しません。少なくとも私にとっては。
ガラヴァーニ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.