2012-04-18 30 views
4

我正在通过发布他们玩Facebook的链接。第一次来自包含“facebookexternalhit”的用户代理的访问将访问您的网站并查找some meta tags如何强制facebookexternalhit重新访问?

到目前为止这么好,工程。但是,如果我尝试重新发布链接,则不会发生任何调用。我如何触发让Facebook再次阅读该页面?

是否有一些API调用可用于触发更新?

Like Button它说,在文档中

回答

4

什么时候Facebook的刮我的网页?

Facebook需要刮你的网页,知道如何显示它围绕 该网站。

Facebook每24小时刮一次您的页面以确保属性为 最新。当Open Graph 页面的管理员单击“Like”按钮时以及将URL输入到 Facebook URL Linter中时,该页面也会被抓取。 Facebook会在您的网址上观察缓存标头 - 它会按照首选项的顺序查看“过期”和“缓存控制”。 但是,即使您指定的时间较长,Facebook也会每24小时刮一次您的 页面。

刮板的用户代理是: “facebookexternalhit/1.1 (+ HTTP://www.facebook.com/externalhit_uatext.php)”

的短绒是现在已知的Facebook Debugger和时你使用它作为url,它会清除facebook缓存中的相同url,然后缓存新的结果。

+0

但我不使用如按钮呢。我只是在谈论发布链接。这是否以同样的方式威胁?用户发布会在24小时后更新吗? – rekire 2012-04-18 07:54:46

+0

我只是从Like Button文档中获取了该部分,但具体信息更一般。他们可能应该找到另一个地方来放置它,但现在它在那里。重点是使用调试器可以强制缓存清理,只需尝试一下。 – 2012-04-18 07:58:22

+0

感谢关于Facebook调试器的信息,在mod_security拒绝facebookexternalhit之后,我能够强制新的刮擦,并删除了规则。 – dangel 2016-01-27 05:00:22

0

您可以使用的一个技巧是简单地将“随机”GET参数附加到您共享的URL。它不会对页面内容产生任何影响,但会导致Facebook的刮板机器人重新访问您的网站。

原始网址:

http://example.com 
http://example.com?param=1 

新网址将强制 “重新访问”:

http://example.com?cache_buster=784932789532 
http://example.com?param=1&cache_buster=784932789532