为什么Facebook返回错误页面(影响Facebook赞和分享URL)?

时间:2011-01-19 17:35:07

标签: facebook facebook-like

当我们第一次发布博客文章时,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。

1 个答案:

答案 0 :(得分:12)

很确定这是你的Open Graph类型就是问题。

<meta content="website" property="og:type"/>

the documentation

  

article用于任何网址   代表瞬态内容 - 例如   新闻文章,博客文章,照片,   视频等。请勿使用website   这个目的。 websiteblog是。{   旨在代表整个网站,   标有og:type或类型的website代码   blog通常只应出现在。{   域的根。