如何清除 Facebook 共享缓存?

我们使用了这个链接:

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

共享一个特定的页面。然而,Facebook Sharer 使用了图片和标题的缓存版本。有没有快速清除 Facebook 缓存的方法,或者我们需要等多久才能更新数据?

我把 <link rel='image_src' href='[preview image]' />放在标签之间。

194770 次浏览

我想这两个链接有一个广泛的讨论,你的问题相关的东西

fbml.refreshRefUrl

像这样

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

你可以在这里学习相关的东西 Fb: 裁判。我希望它会为你工作

我找到了解决问题的办法,你可以去这个网站:

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

...then put in the URL of the page you want to share, and click "debug". It will automatically extract all the info on your meta tags and also clear the cache.

使用 api 是否有一个 API 来强迫 Facebook 再次刮掉一个页面?

$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 文本字段,你应该都设置。它会从你的页面中提取新的 meta 标签,但是它们仍然会缓存,所以记住你需要在任何时候更改它们。这是非常关键的,如果你正在玩的元标签,以获得 FB 共享网址格式化的方式,你希望他们在 facebook 内部。

在 url 后面追加一个? v = Random _ string。 如果你正在使用这个想法与 Facebook 共享,确保 og: url param 在响应 匹配您正在分享的网址。这将工作与谷歌 + 太。

对于 Facebook,你也可以通过向 https://graph.facebook.com发送文章请求来强制重新抓取

{id: url,
scrape: true}

这个答案是为开发人员准备的。

Clearing the cache means that new shares of this webpage will show the new content which is provided in the OG tags. But only if the URL that you are working on has less than 50 interactions (likes + shares). It will also not affect old links to this webpage which have already been posted on Facebook. Only when sharing the URL on Facebook again will the way that Facebook shows the link be updated.

CatandMouse 的回答是正确的,但是你也可以通过向 graph.Facebook.com 发送一个帖子请求来清除 Facebook 的 OG (OpenGraph)缓存。您不需要访问令牌。

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

在佩尔,您可以使用以下代码来使用库 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.");
}
}
}

Sending this post request through the terminal can be done with the following command:

curl -F id="<URL>" -F scrape=true graph.facebook.com

如果你在使用 wordpress 和一个缓存插件,确保你清除了所有的缓存。还要确保你使用的图片是推荐的 facebook 大小: 1200(w) x 630(h)或600 x 315。

我刚刚在这里发布了一个简单的解决方案,它只需要5秒钟。 Facebook 调试器: 清除整个网站缓存

简短的回答... 改变你的永久链接在一个 Wordress 网站的永久链接设置为一个自定义的。我只是加了一个下划线。
/_% postname%/
然后 facebook 把它们都刮掉,变成新的网址,新的帖子。

如果您使用托管 wordpress 或缓存插件,您必须清除您的缓存之前,facebook 调试器工具可以获取新的信息!

几个星期以来,我一直在揪头发,想弄明白为什么我所做的修改在24小时内不会出现在 facebook 调试器中!解决办法是我必须进入我的 wordpress 仪表板,点击顶部的 Godaddy 图标,然后点击“刷新缓存”我认为许多受管理的 wordpress 主机有一个缓存,以找出如何清除它,你会黄金。