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