我经营许多使用Facebook评论插件的新闻网站,例如
<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/sdk.js#version=v2.3&xfbml=1&appId={appID}";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
这将显示注释插件,其中总计数位于顶部,相对于当前网站,而不是所有Facebook上的总评论。这是我想要的数字。
现在,我想在网站上创建一个小部件来查找他们的评论最多的文章。目前我正在使用这样的古老REST API:
$rest_url = "http://api.facebook.com/restserver.php?format=json&method=links.getStats&urls=".$allURLs;
$json = json_decode(file_get_contents($rest_url),true);
其中$allURLs
是以逗号分隔的文章网址列表。但是,comment_count
会返回FB上的注释总数。因此,如果我有一篇通过插件提交了7条评论的文章,comment_count
可能是20,例如,如果FB上的其他地方有评论。我看到commentsbox_count
在那里看起来像我需要的,但它总是显示0。
因此,通过我网站上的网址列表和appID,我如何查询Facebook以返回“本地”评论计数?我需要通过PHP进行此操作,以便我可以对值进行排序,所以fbml对我不起作用。
编辑 - 我也尝试了一个FQL查询并得到了相同的结果:
$fql = "SELECT comment_count FROM link_stat WHERE url = '$url'";
$fqlURL = "https://api.facebook.com/method/fql.query?format=json&query=" . urlencode($fql);