Answers:
我找到了解决问题的办法。您可以转到此站点:
https://developers.facebook.com/tools/debug
...然后输入您要共享的页面的URL,然后单击“调试”。它将自动提取您的元标记上的所有信息,并清除缓存。
Fetch new scrape information
按钮
使用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的查询字符串。简单来说,只需在网址末尾添加?v = 1。可以使用任何数字代替1。
帽子提示:Umair Jabbar
我认为这两个链接对与您的问题相关的内容进行了广泛的讨论。fb:ref通过致电清除现金
fbml.refreshRefUrl
像这样
<tt> fbml.refreshRefUrl(“ http://www.mysite.com/someurl.php”)
您可以从这里fb:ref研究相关的东西。我希望它对你有用
执行此操作的页面位于https://developers.facebook.com/tools/debug/,并且由于其他一些答案而略有变化。
将您的URL粘贴在那里,然后点击“ 调试 ”。然后点击URL文本字段下的“ 获取新的抓取信息 ”按钮,您便已准备就绪。它将从页面中提取新的meta标签,但它们仍将缓存,因此请记住,每当更改它们时都需要这样做。如果您正在使用meta标签来获取FB Shared URL,以格式化它们希望它们在facebook内的方式,那么这确实至关重要。
此答案适用于开发人员。
清除缓存意味着该网页的新共享将显示OG标签中提供的新内容。但前提是您使用的网址的互动次数少于50(喜欢+分享)。这也不会影响到已经在Facebook上发布的指向该网页的旧链接。仅当再次在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
在URL后面附加?v = random_string。如果您将此想法与Facebook分享一起使用,请确保响应中的og:url参数与您分享的url匹配。这也将适用于google plus。
对于Facebook,您还可以通过向https://graph.facebook.com发出发布请求来强制重新抓取
{id: url,
scrape: true}
id=http://www.ridr.me&scrape=true
我刚刚在此处的相关文章上发布了一个简单的解决方案,该过程需要5秒钟
-Facebook 调试器:清除整个网站缓存的
简短答案...将您在永久站点设置中的worpdress网站上的永久链接更改为自定义链接。我只是加了一个下划线。
/ _%postname%/,
然后Facebook将它们全部抓取为新的URL,新的帖子。
如果您将wordpress与缓存插件配合使用,请确保清除所有缓存。另外,请确保您使用的图像具有建议的facebook尺寸:1200(w)x 630(h)或600 x 315。
如果您使用托管的wordpress或缓存插件,则必须清除您的缓存,然后Facebook调试器工具才能获取新信息!
我已经花了数周的时间弄清楚为什么我所做的更改在24小时内都不会出现在facebook调试器中!!!解决方法是,我必须进入我的wordpress仪表板,单击顶部的godaddy图标,然后单击“刷新缓存”。我认为许多托管的wordpress托管人都有一个缓存来弄清楚如何清除它,您会变得很高兴。