FHM*_*FHM 53 facebook facebook-like facebook-opengraph
有像Facebook和缓存og:图像的问题.
长话短说:Facebook已经缓存了我们喜欢的图像的旧版本.元内容网址无法更改.有什么我可以做的刷新吗?
长话:我正在研究的网站上有一个og:meta图像,Facebook在页面被喜欢时使用.此元标记在整个网站的所有网页上使用相同的图片网址.图像只是网站的品牌形象.
问题是该网站最近更新了他们的品牌,我们无法让Facebook像图像更新.当用户点击类似链接时,生成的Facebook帖子仍会显示旧的品牌形象.
元标记类似于:
<meta property="og:image" content="http://[domain].com/images/bookmark/apple-touch-icon.png"/>
Run Code Online (Sandbox Code Playgroud)
每当一个人进入Facebook时,图像的URL就会变为缓存的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
Run Code Online (Sandbox Code Playgroud)
此URL显示网站品牌的旧版本.它已经过了一个多星期,还没有更新.
有没有办法强迫Facebook重新索引图像/清除它的缓存?或者,Facebook会定期自动执行此操作吗?我找不到任何相关的信息.
我知道更改元标记中的URL可以解决问题,但元标记是由跨多个网站使用的代码生成的,无法更改.我也尝试过其他人建议的delinter工具.没运气.
Ara*_*ran 21
您可以使用Facebook的对象调试器,它允许您输入页面URL,然后在下一页上,您可以在"获取新的刮擦信息"请求中重新提交它.这将清除Facebook给定URL的缓存 - 并不是说它可能需要一些时间来传播所有缓存节点.
Facebook的对象调试器可以在这里找到:https: //developers.facebook.com/tools/debug/
我们最近发现Facebook使用针对相对URL的查询字符串来缓存URL,并且忽略了查询字符串,这弄乱了我们纯粹基于查询字符串提供的一些动态图像.
事实证明,您可以指定上次修改的时间戳(采用unix时间戳格式),以帮助确保FB抓取您的网站时,始终获得正确的图像.
这可以通过包含以下OG元标记来完成:
对于动态站点,您需要生成内容值 - 使用PHP可以插入当前的unix时间戳,如下所示:
<meta property="og:updated_time" content="<?=time()?>" />
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
我认为可能的解决方案......如果你在URL的末尾添加一个随机字符串怎么办?
喜欢www.server.com/something.php?v=<?php echo rand() ?>
或
www.server.com/something.jpg?v=<?php echo rand() ?>
我想facebook cahce对象取决于网址...随机改变它...可以帮助.
这篇文章发布 7 年后,这仍然是一个问题,但它不是 Facebook 的缓存:这是人为错误(请允许我详细说明)
OG:TYPE 影响您的图像抓取:
请注意 og:type=website 将导致该 url 的任何 /sub-pages/ 成为“规范”。这意味着无论您做什么,都很难使用抓取工具更新图像。
考虑这个“假设和常见错误”
- <meta property="og:type" content="website" />=> https://www.example.org (父)
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/child -2/
- 因此:/sub-page/并将/child-2/继承og:image父级的
那些不是“所有网站”,1是网站,其他是文章。
如果你这样做,Facebook 会认为所有这些都是规范的,并且会将第一个 og:image 放入所有这些中。(尝试一下,您就会发现) - 如果您将 og:url 设置为您的根域或父域,您就已经告诉 facebook 它们都是规范的。(这是有充分理由的,但这是题外话)
考虑这个解决方案(这是大多数人“真正想要的”)
- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/child-2/
如果你现在就这样做,Facebook 会给你带来更少的抓取新图片的问题。
最后,是的,缓存破坏者、随机变量、更改网址和建议都可以工作,但如果未正确指定,它们将看起来像“间歇性巫毒” 。og:type
PS:请记住,即使您“认为”可以看到最新版本,CDN 或服务器端缓存也将为 Facebook 的抓取工具提供服务。(我不会花任何时间在这上面,只是指出如果不仔细检查的话会浪费你大量的时间。)
| 归档时间: |
|
| 查看次数: |
59392 次 |
| 最近记录: |