Facebook社交插件评论计数

3

我正在使用Facebook Connect和Facebook社交插件评论()。我想获取当前页面的评论计数。该如何编写?需要使用FQL吗?如果需要使用FQL,

SELECT count(*) FROM comments WHERE xid= ?

我应该添加什么xid?如何从当前地址获取xid?

2个回答

5
<?php
session_start();

$fbconfig['appid' ]  = "1111111";
$fbconfig['api'   ]  = "2222222";
$fbconfig['secret']  = "3333333";

$xid = 'myCommentBox'; 

include_once "facebook.php";

$facebook = new Facebook(array(
    'appId'  => $fbconfig['appid' ],
    'secret' => $fbconfig['secret'],
    'cookie' => true,
));

$fql = "SELECT count FROM comments_info WHERE app_id = '".$fbconfig['appid' ]."' AND xid = '$xid' ";
$param  =   array(
    'method'    => 'fql.query',
    'query'     => $fql,
    'callback'  => ''
);
$fqlResult   =   $facebook->api($param);
print_r( $fqlResult );
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Count FB comment!</title>
    </head>
<body>
<div id="fb-root"></div>
   <script src="http://connect.facebook.net/en_US/all.js#appId=<?=$fbconfig['appid' ]?>&amp;xfbml=1"></script>
   <fb:comments xid="<?=$xid?>" numposts="10" width="600" publish_feed="true"></fb:comments>
</body>
</html>

@Burgi - <?= 是完全可以的 - 它不是一个短标签。 - David Harkness
@DavidHarkness PHP称之为短标签,你叫它什么?<?=需要将short_open_tag设置为true,但在大约95%的服务器上并不是这样,因为它已经被废弃多年了。 - Burgi
@Burgi - 你说得对!我花了太多时间在PHP 5.4领域。 :) 然而,<?=不会像<?那样被误认为是XML声明,只有在超级可移植性是一个问题并且你没有访问多文件搜索和替换时才会有影响。此外,我怀疑95%的准确性是否正确。在我看来,这绝对不值得打负面评价。 - David Harkness
@DavidHarkness,实际上我已经点赞了这个答案;)我以如此负面的方式发表评论的原因是因为我一直被教导使用长语法是最佳实践,而且在我看来,对于前端开发人员来说也更易读。 - Burgi

0

你只需要提供你的应用程序ID来查询comments_info,它将返回特定于特定xid的xid和计数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接