我刚刚在网站上实现了FB Like按钮,并且在某些产品页面上按预期工作(如计数增量,墙上的帖子),在一些计数增量上,立即重置为空,但仍显示在墙上。
昨天从FB获取了按钮的基本代码,这是我得到的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" >
... meta标签:(不允许透露/发布任何客户识别信息,但是:-()
<meta property="fb:admins" content="000000"/>
<meta property="og:site_name" content="Some Client In QA" />
<meta property="og:title" content="Some Client In QA product title" />
<meta property="og:type" content="product" />
<meta property="og:image" content="http://client.in.qa/product/pix/somepix.jpg">
<meta property="og:url" content="http://client.in.qa/product/product1234" />
<meta property="og:description" content="product description" />
...在开始标记之后:
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
...按钮本身:
<fb:like href="http://client.in.qa/product/product1234" send="false" layout="button_count" width="90" show_faces="false"></fb:like>
奇怪的东西:
当我开始使用它时,我使用客户端提供的管理员ID,当通过fb linter运行url时,它给出的唯一错误是
Object at URL 'http://client.in.qa/product/product1234' of type 'product' is invalid because the given value '000000' for property 'fb:admins' could not be parsed as type 'fbid'.
但是当我点击“赞”后查看Firebug中的响应时,错误提到了无效的app_id。
此时我点击按钮,计数会增加并立即恢复,但它会显示在我的墙上。
所以我在FB上设置了一个测试应用程序并输入client.in.qa
作为应用程序域并http://client.in.qa
作为网站,并在fb:admins元标记上使用我自己的应用程序ID。
然后'喜欢'计数会增加并保持。我觉得一切都很好。但是......结果证明它并不适用于所有产品。即使对于按钮似乎按预期工作的产品页面,也会出现相同的错误。
点击网址图表API会显示:
{
"error": {
"message": "An unknown error has occurred.",
"type": "OAuthException",
"code": 1
}
}
提前致谢。
更新: 似乎在FB抓取网站之前获得一致行为的唯一方法是通过linter运行要被喜欢的URL。然后,当我试图“喜欢”它和计数'坚持'
时,小预览显示出来