如何更新facebook开放图形图像
假设您已通过open graph协议的meta标记为您的网页设置facebook图像,如下所示:如何更新facebook开放图形图像,facebook,facebook-opengraph,Facebook,Facebook Opengraph,假设您已通过open graph协议的meta标记为您的网页设置facebook图像,如下所示: 如果你想用另一张同名的图片替换/更新你的图片rock.jpg,你如何让facebook在你共享页面时用新图片相应地更新你的图片?强制facebook使用此链接获取您页面的数据不会更新图像。facebook将您的图像存储到其服务器上自己的图像中,然后将其缓存24小时。缓存延迟将来可能会改变,所以要检查它,只需打开facebook根据您的图像创建的图像,并在http头中检查其“max age”值。因此
如果你想用另一张同名的图片替换/更新你的图片
rock.jpg
,你如何让facebook在你共享页面时用新图片相应地更新你的图片?强制facebook使用此链接获取您页面的数据不会更新图像。facebook将您的图像存储到其服务器上自己的图像中,然后将其缓存24小时。缓存延迟将来可能会改变,所以要检查它,只需打开facebook根据您的图像创建的图像,并在http头中检查其“max age”值。因此,如果您更改图像,facebook将在24小时前更新其版本,即使您使用此链接强制获取数据
要解决这个问题,如果您需要立即查看更改的效果,您应该重命名您的图像。因此,如果旧版本是
rock.jpg
将其命名为rock2.jpg
,则使用此链接让facebook根据更新后的图像创建新图像。这将立即更新您的网页在facebook共享中的facebook图像。这是我找到的关于这个问题的最一致的答案:
如果您懒得转到该链接,您可以发布一个ajax请求,其中包含您试图清除的url:
$.post(
'https://graph.facebook.com',
{
id: 'http://www.site.com/my/share/url/',
scrape: true
},
function(response){
console.log(response);
}
);
如果您正在使用任何缓存插件,请确保清除所有缓存。还要确保您使用的图像具有facebook推荐的大小:1200(宽)x 630(高)或600 x 315。这篇文章发表后几年,这仍然是一个问题,但这不是facebook的缓存:这经常是人为错误(请允许我详细说明)
OG:TYPE effects您的图像刮取:
不一样
请注意,og:type=website将导致该url的任何/子页/成为“规范的”。这意味着无论你做什么,你都很难用刮板更新你的图像
考虑这一“假设和常见错误”
-
=>(父项)
-
=>
-
=>
-因此:/sub-page/
和/child-2/
将继承父对象的og:image
这些不是“所有的网站”,1是一个网站,其他的是文章
如果你这样做了,Facebook会认为所有这些都是规范的,它会在所有这些中添加第一个og:image。(试试看,你会发现)-如果你将og:url设置为你的根域或父域,你已经告诉facebook它们都是规范的。(这有很好的理由,但它离题了)
考虑这个解决方案(这是大多数人“真正想要的”)
-
=>
-
=>
如果你现在这样做了,Facebook将大大减少你抓取新图片的问题
最后,是的,这里的缓存清除器、随机变量、更改URL和建议都可以工作,但是如果没有正确指定og:type
,它们看起来就像“间歇性伏都教”
PS:请记住,即使你“认为”你可以看到最新的版本,CDN或服务器端缓存也会为Facebook的scraper服务。(我不会花任何时间在这个问题上,我只想指出,如果不仔细检查,这将浪费你大量的时间。)这非常有效。这应该是最好的答案。我同意@草莓,如果您知道如何在控制台中使用javascript/jQuery,这个解决方案是立即生效的最佳解决方案。立即刷新他们的og:image缓存,每次都能正常工作。我会用这个做一个书签,谢谢:)工作很愉快。非常感谢。如果您可以访问Facebook开发者工具,您也可以通过图形API浏览器或通过图形API浏览器,将?scrape=true&id=URL\u to\u scrape
放在POST字段中,以防有人想要使用版本化的图形URL,例如https://graph.facebook.com/v2.6
需要一个访问令牌
。这可以是Facebook应用程序访问令牌,它是{App_ID}{App_SECRET}