如何强制清除 Twitter Card 机器人的缓存?

How to force cache purge of Twitter Card's bots?

从字面上看,我正在寻找这样的东西:

https://developers.facebook.com/tools/debug/

但对于 Twitter 卡片。

我在我的页面上放错了东西,我需要尽快刷新它们。但是在 google 之后我只找到了这个 post:

https://dev.twitter.com/cards/troubleshooting

Twitter 似乎只提供每周更新。有什么手动方法可以清除错误缓存的页面吗?

谢谢

我刚刚设法强制它更新我的:

https://cards-dev.twitter.com/validator

在验证时更新其缓存。

我运行遇到同样的问题。

我需要更新缓存 summary_large_image

Twitter 卡片验证器 (https://cards-dev.twitter.com/validator)

对更新以前缓存的图像表现出零兴趣。

我通过确保每次 Twitter 获取页面时将图像 URI 更新为 Twitter 以前从未见过或缓存的内容来修复它。

这就像在 PHP 中部署 uniqid() 函数并将其用作图像 URI 末尾的 query 一样简单。

例如

<?php

echo '
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="http://example.com/my-twitter-image.png?'.uniqid().'">
';

?>

由于每次 Twitter 获取图像 URI 都不同,这会强制更新缓存。

在我的案例中,按照 Twitter Card's Troubleshooting Guide 中的步骤实际上强制清除了缓存。

When testing and/or iterating on Cards, it is sometimes helpful to test updates on your timeline. It may be possible to use the following technique to refresh the cache with your most up-to-date changes of your page’s Card.

  1. Add Card metadata to a page
  2. Tweet URL to that page
  3. Refresh your browser to view the Card contents on your timeline
  4. Change Card metadata on the page
  5. Take the same URL and runs it through bit.ly
  6. Tweet the new bit.ly URL
  7. Refresh your browser to view the updates

Additionally, you can create multiple bit.ly URLs to allow for repeat testing.

我在页面上生成了一个 bit.ly link,然后发了推文,然后迅速删除了那条推文。它立即清除了另一条推文的缓存。

实际上有一个比 Twitter 提出的更简单的解决方案:

  • 转到https://cards-dev.twitter.com/validator
  • 输入您要更新的 URL,但要进行更改。例如,添加 ?utm_source=Whatever
  • 然后用你的 Twitter 卡片上的任何推文重新加载页面

当 Twitter 验证程序遇到这个不同的 URL 时,它会清除其缓存并获取新版本。

有一种非常简单的方法可以强制使 Twitter Card 机器人的缓存失效。

如果您正在撰写带有 URL 的推文,例如 https://example.com you only have to append a /# to the URL like so: https://example.com/#,它将立即获取更新后的元数据。

唯一帮助我清除缓存的是在图像末尾添加 ?v1 URL:

<meta property="twitter:image" content="https://website.com/img/twitter.jpeg?v1" />