Facebook喜欢 – 显示caching版本og:图像,刷新或重新索引它的方式?

有像Facebook和一个caching的og:image的问题。

长话短说:Facebook已经caching了我们喜欢的图像的旧版本。 元内容url无法更改。 有什么我可以做的刷新它?

长篇小说:我正在处理的网站有一个meta标签,用于Facebook在页面被喜欢时使用的图像。 此元标记在整个网站的所有网页上使用相同的图片url。 该图像只是网站的品牌形象。

问题是这个网站最近更新了他们的品牌,而且我们无法让Facebook的图片更新。 当用户点击类似链接时,由此产生的发布到Facebook仍然显示旧的品牌形象。

meta标签类似于:

<meta property="og:image" content="http://[domain].comhttp://img.dovov.combookmark/apple-touch-icon.png"/> 

每当类似的方式到Facebook时,图像的URL就会变成caching的Facebook URL,类似于:

 http://external.ak.fbcdn.net/safe_image.php?d=AQDajxm-qgVNdfEL&w=90&h=90&url=http%3A%2F%2F[domain].com%2Fimages%2Fbookmark%2Fapple-touch-icon.png 

此url显示网站品牌的旧版本。 已经过了一个星期了,还没有更新。

有没有办法强制Facebook重新索引图像/清除它的caching? 或者,Facebook是否定期自动执行此操作? 我找不到任何有关的信息。

我知道,更改元标记中的url可以解决问题,但元标记是由跨多个网站使用的代码生成的,无法更改。 我也尝试了其他人向我推荐的delinter工具。 没有运气。

将你的URL插入他们的linter ,它应该重新加载它的caching

您可以使用Facebook的对象debugging器,它将允许您input页面的URL,然后在下一页,您可以重新提交请求“获取新的刮擦信息”。 这将清除Facebook的caching给定的URL – 不是它可能需要一些时间来传播所有的caching节点。

Facebook的对象debugging器可以在这里find: https : //developers.facebook.com/tools/debug/

我们最近发现,Facebook正在使用查询string对相对URL进行caching,并且查询string被忽略,这就使我们纯粹基于查询string服务的一些dynamic图像混乱了。

事实certificate,您可以指定上次修改的时间戳(以unix时间戳格式),以帮助确保FB抓取您的网站时,它始终得到正确的图像。

这可以通过包含以下OG元标记完成:

对于dynamic网站,您需要生成内容值 – 使用PHP,可以按如下方式插入当前的unix时间戳:

 <meta property="og:updated_time" content="<?=time()?>" /> 

希望这可以帮助!

我想一个可能的解决scheme…如果你在URL的末尾添加一个随机string?

www.server.com/something.php?v=<?php echo rand() ?>www.server.com/something.jpg?v=<?php echo rand() ?>

我猜Facebook的cahce对象取决于url…随机更改…可以帮助。