Twitter 卡元标签问题

Mur*_*976 7 html debugging facebook-opengraph twitter-card

有问题的网址:https://www.halleonard.com/viewpressreleasedetail.action? releaseid=10261

当您在浏览器和开发人员工具中查看源代码时,您可以看到 Open Graph 和 Twitter 的所有元标记。我检查了 Facebook 调试器,除了一些规范问题之外,我对结果相当满意。

我还将上述 URL 插入第三方 Open Graph 调试器: http://debug.iframely.com/,Open Graph、Twitter 甚至其他标签的所有标签均返回正值。

为什么 Twitter 的卡片验证器会带着一个

INFO:  Page fetched successfully
INFO:  9 metatags were found
ERROR: No card found (Card error)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

关于如何让 Twitter 正确显示有什么见解吗?

cus*_*der 5

我认为您可能正在阻止或重定向Twitterbot代理。

我伪造了一个Twitterbot代理curl

curl -A 'Twitterbot' https://www.halleonard.com/viewpressreleasedetail.action?releaseid=10261 -o ~/Desktop/what-twitterbot-sees.html
Run Code Online (Sandbox Code Playgroud)

这就是您的服务器返回的内容:

在此输入图像描述

正如您所看到的,有 10 个元标记(如果您排除一个),这是卡验证器所指示的,并且根本<meta charset>没有标记。<meta name="twitter:*">

如果您可以设置自定义用户代理字符串,则可以使用浏览器进行重现。这可以通过 Google Chrome 实现:

在此输入图像描述

我非常确定您的 Web 服务器级别或应用程序代码中存在某种重定向规则。


根据developer.twitter.com,我使用的用户代理字符串是正确的:

Twitter使用Twitterbot的User-Agent(有版本,如Twitterbot/1.0)