我在我的网站上使用Facebook评论,它工作正常,但我无法检索评论数。
我尝试了HTML5代码:<div class="fb-comments-count" data-href="http://www.bmeme.hu/?site=post&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>
并没有效果......
答案 0 :(得分: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>
答案 1 :(得分:1)
您正在以错误的方式对网址进行编码。
属性data-href
应该是http://www.bmeme.hu/?site=post&id=20
(注意&
而不是&
)。就像你在评论社交插件中定义的一样。
要通过OpenGraph获取评论,您应该使用encodeURIComponent
正确编码整个网址:
https://graph.facebook.com/comments/?ids=http%3A%2F%2Fwww.bmeme.hu%2F%3Fsite%3Dpost%26id%3D20
可以通过网址访问<{iframe
comments-count
版本的http://www.facebook.com/plugins/comments.php?href=http%3A%2F%2Fwww.bmeme.hu%2F%3Fsite%3Dpost%26id%3D20&permalink=1
:
{{1}}
<强>更新强>
由于您还关心“有效”HTML,因此您应该使用页面的URL编码URL来完成此操作。我创建了jsFiddle,你可以看到两种工作方式:http://jsfiddle.net/rFmyX/