有问题的网址:https://www.halleonard.com/viewpressreleasedetail.action?releaseid=10261
当您在浏览器和开发人员工具中查看源代码时,可以看到Open Graph和Twitter的所有元标记。我已经检查了Facebook Debugger,除了一些规范性的问题之外,我对结果非常满意。
我还将上面的URL插入了第三方Open Graph Debugger: http://debug.iframely.com/ 并且所有用于Open Graph,Twitter和其他标签的标签都恢复了正值。
为什么Twitter的Card Validator会返回一个
INFO: Page fetched successfully
INFO: 9 metatags were found
ERROR: No card found (Card error)
对我如何使Twitter正确显示有何见解?
答案 0 :(得分:1)
我认为您可能正在阻止或重定向Twitterbot
代理。
我用Twitterbot
伪造了一个curl
特工:
curl -A 'Twitterbot' https://www.halleonard.com/viewpressreleasedetail.action?releaseid=10261 -o ~/Desktop/what-twitterbot-sees.html
这是您的服务器返回的信息:
如您所见,有10个元标签(如果不包括<meta charset>
,则是卡片验证程序指示的内容,根本没有<meta name="twitter:*">
标签。
如果可以设置自定义用户代理字符串,则可以使用浏览器进行复制。使用谷歌浏览器可以做到这一点:
我很确定在您的Web服务器级别或您的应用程序代码中都有某种重定向规则。
根据developer.twitter.com,我使用的用户代理字符串是正确的:
Twitter使用Twitterbot的用户代理(版本,例如Twitterbot / 1.0)
答案 1 :(得分:0)
我用w3c验证程序检查了您的源代码。
似乎Google标记管理器未正确安装:您必须将google tag manager (noscript)
部分顶部的body
(第10:13行)移到head
上,并将其完全删除部分。
您可以在此处找到一些信息 https://support.google.com/tagmanager/answer/6103696?hl=en
,以及(更具体地)在您的代码管理器页面中(如附件所示)
答案 2 :(得分:0)
由于您选择了twitter:card
类型,因此出现错误。您忘记添加twitter:image
内容。这些都应该添加。
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="ADD IMAGE URL">