我正在通过发布它们来玩 Facebook 链接。在第一次来自包含“facebookexternalhit”的用户代理的访问将访问您的网站并查找一些元标记。
到目前为止效果很好。但是,如果我尝试重新发布链接,则不会发生任何后续呼叫。如何触发让 facebook 再次读取页面?
我可以使用一些 API 调用来触发更新吗?
在Like Button的文档中它说:
Facebook 什么时候抓取我的页面?
Facebook 需要抓取您的页面以了解如何在网站周围显示它。
Facebook 每 24 小时抓取一次您的页面,以确保属性是最新的。当 Open Graph 页面的管理员单击 Like 按钮以及将 URL 输入 Facebook URL Linter 时,该页面也会被抓取。Facebook 会观察您 URL 上的缓存标头 - 它会按优先顺序查看“过期”和“缓存控制”。但是,即使您指定更长的时间,Facebook 也会每 24 小时抓取一次您的页面。
爬虫的用户代理是:“facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)”
Linter 现在被称为Facebook 调试器,当您将它用于 url 时,它将清除 facebook 缓存中相同的 url,然后缓存新结果。
您可以使用的一个技巧是简单地将“随机”GET 参数附加到您共享的 URL。它不会对页面内容产生任何影响,但会导致 Facebook 的爬虫机器人重新访问您的网站。
原始网址:
http://example.com
http://example.com?param=1
将强制“重新访问”的新 URL:
http://example.com?cache_buster=784932789532
http://example.com?param=1&cache_buster=784932789532