2012-02-19 69 views
3

我在我的网站上使用Facebook评论,它工作正常,但我无法检索评论数。无法获得Facebook评论数

我尝试了HTML5代码:<div class="fb-comments-count" data-href="http://www.bmeme.hu/?site=post&amp;id=20">0</div>,但它返回0而不是实数。

我在此处检查了我的页面:https://graph.facebook.com/comments/?ids=http://www.bmeme.hu/?site=post&id=20但正如您所看到的,它不会返回任何内容。

为什么不能获得Facebook的评论数?

感谢

更新:这里是我的代码,我用:

<div class="fb-comments-count" data-href="<? echo urlencode($siteurl."/?site=post&id=".$value["id"]); ?>" style="display: inline;">0</div> komment

$siteurl = http://www.bmeme.hu 
$value["id"] //the actual post id 

,并在<body>标签中的第一行:

<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> 

而不是工作s ..

回答

1

您正在以错误的方式编码URL。 (请注意&而不是&amp;)。就像它在您的评论社交插件上定义的一样。

要获得通过OpenGraph意见,你应该正确编码整个URL与encodeURIComponent

http://www.facebook.com/plugins/comments.php?href=http%3A%2F%2Fwww.bmeme.hu%2F%3Fsite%3Dpost%26id%3D20&permalink=1 

更新:

版本comments-count
https://graph.facebook.com/comments/?ids=http%3A%2F%2Fwww.bmeme.hu%2F%3Fsite%3Dpost%26id%3D20 

iframe可以通过URL访问
既然你还关心“有效的”HTML,您应该使用网页的URL编码URL来完成此操作。我已经创建jsFiddle在那里你可以看到两种工作方式:http://jsfiddle.net/rFmyX/

+0

如果我把那么,而不是&然后它不会是W3C有效的代码。但我试过了,仍然没有...现在的图形链接罚款,但我只会计数的意见,只有HTML5 – 2012-02-20 00:12:43

+0

@TamásKinsztler,我'我用一些说明更新了我的代码,并提供了实际工作示例。顺便说一句,最好在你的问题中说明:你关心HTML的有效性(不是每个人都这样做,也不是自动暗示的)。 ;) – 2012-02-20 07:16:01

+0

我看到你的代码正在工作,但我在我的网站上实现了相同的代码(正如你所看到的),并且它不工作。如果我打开谷歌铬调试器,我也有一个错误:未捕获TypeError:无法读取undefined @ all.js:52的属性'0'。我在使用和不使用urlencode时遇到了这个错误。如果我编写一个php脚本来检查graph.facebook.com链接上的评论,那么该网站将会非常缓慢。 – 2012-02-20 20:00:05

2

这是我用来获得评论计数工作。 (这是有效的HTML 5代码,使用旧版模板在Facebook网站上的示例)。

//Include this in the footer of your page. 
(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_GB/all.js#xfbml=1&appId=xxxxxxxxxxxxxx"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

现在使用这个div检索评论数(它会显示为0,因为你使用它的第一次,你大概不会有你的页面上的任何意见”。

<div class="fb-comments-count" data-href="http://www.yourpagelinkhere.com"></div> 
+0

这个工程!谢谢 – duy 2013-07-14 04:54:05