Facebook和Whatsapp元标记缓存问题

Var*_*eja 10 caching metadata meta-tags open-graph-protocol facebook-opengraph

问题陈述

我通过Facebook和Whatsapp分享网址.这些消息传递应用程序倾向于以共享链接的缩略图形式生成"丰富预览".到目前为止,一切似乎都很好

但是,如果我更改链接指向的内容,那么下次与完全不同的人共享相同的链接时,更改不会反映出来!这适用于Facebook和WhatsApp中的丰富预览缩略图.我发送消息的新人仍然看到前一个用户从我那里收到的旧缩略图.

例如,以下是我发送给ALICE的带有链接的消息后,消息传递应用程序呈现的缩略图的快照: Facebook缩略图在编辑内容之前

以下是我编辑链接指向的内容后,消息传递应用程序呈现的另一个缩略图的快照.我将名称更改为Pro3并将价格更改为549并向BOB发送了一条新消息...但是BOB看到了与ALICE相同的缩略图预览!编辑内容后的缩略图

不好的解决方案

  1. 稍微更改URL并不是一个非常适合我的解决方案.
  2. Facebook调试器上的scrape选项只适用于该平台,并不适合,因为它必须手动完成,这意味着它无法扩展!

我需要帮助的是什么

我首选的解决方案是使用Cache-ControlPragma标记(根据网络标准)来禁用缓存,但它似乎不起作用.

这是我的代码

 '<title>' + metaData.title + '</title>' +
    '<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">\n' +
    '<meta http-equiv="Pragma" content="no-cache">\n' +
    '<meta http-equiv="Expires" content="0">\n' +
    '<meta http-equiv="refresh" content="0; url=http://my.site.com/my/products">' +
    '<meta name="description" content="' + metaData.description + '" />\n' +
    '<meta property="og:type" content="product" />\n' +
    '<meta property="og:title" content="' + metaData.title + '" />\n' +
    '<meta property="og:description" content="' + metaData.description + '" />\n' +
    '<meta property="og:image" content="' + metaData.imageUrl + '" />\n' +
    '<meta property="og:image:width" content="' + metaData.imgWidth + '"/>\n' +
    '<meta property="og:image:height" content="' + metaData.imgHeight + '" />\n' +
    '<meta property="og:image:alt" content="' + metaData.imgAlt + '"/>' +
    '<meta property="og:url" content="' + metaData.url + '" />\n' +
    '<meta name="og_site_name" property="og:site_name" content="' + metaData.domainName + '" />' +
    '<meta name="keywords" content="' + metaData.keywords + '">' +
Run Code Online (Sandbox Code Playgroud)

有人可以建议另一种值得尝试的方法,或者帮助我解决当前方法可能出错的问题吗?

A S*_*ANI 8

我希望这个问题与 Facebook 和 Whatsapp CDN 相关...

显然在 Facebook 上,您可以使用调试器工具并强制 Facebook 刷新它已缓存的 URL。(也许使用 API 来强制刷新),但我在 Whatsapp 上没有找到这个选项......

最好的解决方案是您的“不好的解决方案”之一:

更改网址

隐式强制 CDN 重新缓存/更新新内容。

  • 我检查过,不同区域的 CDN 是正确的,它发送更新的数据@pulkitsinghal (2认同)