当我们第一次发布博客文章时,Facebook经常(但并不总是)对页面的内容感到困惑。具体来说,如果您尝试使用博客页面上的“赞”按钮,或者如果您尝试通过个人资料上的“共享”链接进行共享,Facebook将会看到根博客页面而不是实际的帖子页面。
例如,我们最近发布了: http://thisorthat.com/blog/2010-song-of-the-year-round-1-results
如果用户“喜欢”它,则会返回以下标题: “http://thisorthat.com/blog”
当您通过FB Linter运行帖子URL时,您可以看到问题。 “http://developers.facebook.com/tools/linter?url=http://thisorthat.com/blog/2010-song-of-the-year-round-1-results”
在Debug部分中,它显示了一个额外的og:title,og:url,description和og:image(Debug部分的最后4行)。这是根目录中的元数据。我们无法弄清楚的是为什么。为什么Facebook在页面上看到正确的元数据,然后从根目录中提取元数据(并使用不正确的方法填充Like按钮和共享URL工具的数据)?
另一个奇怪的是。几天后,FB“明白了”。当然,到那个时候,相对较少的人正在观看这个帖子。更新 - 我想再次感谢Peter Bailey的回答,但我们也发现在Like按钮工作之前还有另一个问题需要解决。
问题在于我们在尚未发布的帖子上显示Facebook的Like按钮。这个问题是FB然后无法解析URL并“猜测”正确的URL。在我们的例子中,它总是猜测thisorthat.com/blog。不幸的是,它然后缓存猜测了几天,并且Linter无法清除缓存。所以最终的解决方案是修复og:类型,如彼得建议,但也从博客帖子预览中删除Like按钮。在页面发布之前不显示FB非常重要,如果你这样做,请更改URL。
答案 0 :(得分:12)
很确定这是你的Open Graph类型就是问题。
<meta content="website" property="og:type"/>
将
article
用于任何网址 代表瞬态内容 - 例如 新闻文章,博客文章,照片, 视频等。请勿使用website
这个目的。website
和blog
是。{ 旨在代表整个网站, 标有og:type
或类型的website
代码blog
通常只应出现在。{ 域的根。