【以下的问题经过翻译处理】 我正在使用Lambda@Edge函数(在源请求触发)来更改托管在S3和Cloudfront上的react网站的元标签,以实现丰富的社交分享。它可以完美地用于Facebook,但对Twitter或LinkedIn无效。
LinkedIn的错误(来自其帖子检查器):
*We encountered a server error while trying to inspect the URL.
*(URL Redirect Trail) 500 Failure
Twitter卡验证器错误:
1.INFO: Page fetched successfully
2.INFO: 11 metatags were found
3.ERROR: No card found (Card error)
我认为我的标签实际上是正确的,例如Facebook的共享调试器显示其看到的内容:
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="@myTwitter">
<meta name="twitter:creator" content="@myTwitter">
<meta name="description" content="My amazing content">
<meta property="og:image" content="https://mys3bucket.s3.amazonaws.com/static/media/myImage.19c87b8d.jpg">
<meta property="og:title" content="My amazing title">
<meta property="og:description" content="My amazing content">
<meta property="og:url" content="https://example.com/whatever/mypage">
<meta property="og:type" content="website">
<meta property="og:locale" content="en_US">
<meta name="author" content="me">
我的问题是-Cloudfront是否是问题所在,即它是否会阻止Twitterbot / LinkedIn如何做到这一点?我运行了以下命令:
curl -A TwitterBot https://www.example.com
它会返回带有正确标记的html,所以我不确定。
另外,如果我关闭 Lambda@Edge,只在 index.html 中硬编码标签,Twitter 和 LinkedIn 分享也能正常工作。
在 AWS 文档中,我看不到任何允许 Twitter/LinkedIn 机器人的说明。
任何帮助都将不胜感激!