如何清除Facebook Sharercaching?
我们使用的链接:
http://www.facebook.com/sharer.php?u=[shared URL]
…分享一个特定的网页。 但是,Facebook Sharer使用图像和标题的caching版本。 有没有办法快速清除Facebookcaching,或者需要等待多长时间才能更新数据?
我在标签之间放置了<link rel='image_src' href='[preview image]' />
。
我find了解决我的问题。 你可以去这个网站:
https://developers.facebook.com/tools/debug
然后把你要分享的网页的url,然后点击“debugging”。 它会自动提取你的元标签的所有信息,并清除caching。
使用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,并根据该urlcaching网页,因此如果您想共享最新的url,最简单的解决scheme就是添加一个查询string,并将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,然后点击“ debugging ”。 然后点击URL文本字段下的“ 获取新的抓取信息 ”button,你应该全部设置。 它会从您的页面中提取新的元标记,但仍然会caching,因此请记住,每当您更改它时,都需要执行此操作。 如果您正在使用元标记来获取FB共享URL来格式化您希望他们在Facebook内部的方式,这是非常关键的。
这个答案是针对开发者的。
清除caching意味着该网页的新分享将显示OG标签中提供的新内容。 但是,只有当您正在使用的urlless于50个互动(喜欢+份额)。 这也不会影响已经在Facebook上发布的这个网页的旧链接。 只有在Facebook上再次分享URL时,Facebook才会更新链接。
catandmouse的回答是正确的,但是你也可以通过向graph.facebook.com发送一个post请求来清除OG(OpenGraph)caching(在撰写这个回答的时候,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') { JIX::Log->warn("Clearing cached OG data for $clearurl failed with code $code."); } } }
通过terminal发送这个发布请求可以通过以下命令完成:
curl -F id="<URL>" -F scrape=true graph.facebook.com
追加一个?v = random_string到url。 如果您使用Facebook共享这个想法,请确保响应中的og:url参数与您共享的url匹配。 这也将与谷歌加。
对于Facebook,您也可以通过向https://graph.facebook.com发送post来强制重新抓取;
{id: url, scrape: true}
如果您使用带有caching插件的wordpress,请确保清除所有caching。 也请确保您使用的图像具有build议的Facebook大小:1200(宽)x 630(h)或600 x 315。
我刚刚发布了一个简单的解决scheme,需要5秒在这里相关的职位 – Facebookdebugging器:清除整个站点caching
简短的回答…将永久链接设置中的worpdress站点上的永久链接更改为自定义链接。 我刚刚添加了一个下划线。
/ _%postname%/
然后facebook刮他们所有的新的url,新的职位。
如果你使用托pipewordpress或caching插件,你必须清除您的caching之前,facebookdebugging工具可以获取新的信息!
我一直拉我的头发了几个星期搞清楚为什么我所做的改变不会出现在脸谱debugging器24小时! 修复是我必须进入我的WordPress的仪表板,点击顶部的godaddy图标,然后单击“刷新caching”。 我认为许多托pipe的WordPress主机有一个caching来弄清楚如何清除它,你会成为金。