回答:
私は自分の問題の解決策を見つけました。あなたはこのサイトに行くことができます:
https://developers.facebook.com/tools/debug
...次に、共有するページのURLを入力して、[デバッグ]をクリックします。メタタグのすべての情報が自動的に抽出され、キャッシュもクリアされます。
Fetch new scrape information
ボタンをクリックするだけ
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 );
Facebookは各URLを一意として扱い、そのURLに基づいてページをキャッシュします。そのため、最新のURLを共有したい場合、最も簡単な解決策は、共有されているURLを含むクエリ文字列を追加することです。簡単に言うと、URLの最後に?v = 1を追加するだけです。1の代わりに任意の数を使用できます。
帽子の先端:Umair Jabbar
これを行うページはhttps://developers.facebook.com/tools/debug/にあり、他の回答の一部から少し変更されています。
そこにURLを貼り付け、「デバッグ」をクリックします。次に、URLテキストフィールドの下にある[ 新しいスクレイプ情報を取得する ]ボタンをクリックすると、すべての設定が完了します。新しいメタタグはページからプルされますが、それらは引き続きキャッシュされるため、変更するたびにこれを行う必要があることに注意してください。これは、FB共有URLを取得してFacebook内で希望どおりにフォーマットするためにメタタグを操作する場合に非常に重要です。
この回答は開発者を対象としています。
キャッシュをクリアすると、この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
?v = random_stringをURLに追加します。このアイデアをFacebook共有で使用している場合は、応答のog:urlパラメータが共有しているURLと一致していることを確認してください。これはグーグルプラスでも動作します。
Facebookの場合は、https: //graph.facebook.comに投稿リクエストを送信して、強制的に再クロールすることもできます。
{id: url,
scrape: true}
id=http://www.ridr.me&scrape=true
5秒かかる簡単なソリューションをここの関連する投稿に投稿し
ました-Facebook デバッガー:サイトキャッシュ全体の
短い回答をクリア ...パーマリンク設定のワープドレスサイトのパーマリンクをカスタムパーマリンクに変更します。アンダースコアを追加しました。
/ _%postname%/
その後、facebookはそれらすべてを新しいURL、新しい投稿としてスクレイピングします。
キャッシュプラグインでワードプレスを使用している場合は、必ずすべてのキャッシュをクリアしてください。また、使用している画像の推奨Facebookサイズが1200(w)x 630(h)または600 x 315であることを確認してください。
管理されたワードプレスまたはキャッシングプラグインを使用した場合、Facebookデバッガーツールが新しい情報を取得する前にキャッシュをクリアする必要があります!
私は何週間も髪の毛を抜いてきましたが、自分が加えた変更がFacebookデバッガーに24時間表示されない理由を理解しています!!!! 修正方法は、ワードプレスダッシュボードに移動し、上部のgodaddyアイコンをクリックして、[キャッシュをフラッシュ]をクリックすることです。多くの管理されたワードプレスホスティング業者は、それをクリアする方法を理解するためのキャッシュを備えていると思います。