我想从给定的Facebook页面检索所有帖子以及相关的评论。
我编写了这段代码(应用程序详细信息被混淆,替换为您自己的代码以便运行它)。
<?php
require_once('facebook.php');
$facebook = new Facebook(array(
'appId' => 'MY_APP_ID',
'secret' => 'MY_APP_SECRET',
'cookie' => true,
));
$pages = array(
"stackoverflow" => 11239244970
);
$result = $facebook->api(array(
'method' => 'fql.multiquery',
'queries' => '{
"posts": "select post_id, source_id, actor_id, target_id, likes, message from stream where source_id = '.$pages["stackoverflow"].'",
"comments": "select post_id, text, username, fromid from comment where post_id in (select post_id from #posts)"
}'
));
echo json_encode($result);
?>
posts
会返回预期结果,但comments
只返回一条评论。
此示例查询stackoverflow facebook page
comments
查询返回的评论为“已加入!” (来自this post)。我无法弄清楚这个评论有什么特别之处。
有没有?
答案 0 :(得分:1)
我试图找到一个使用Graph Api
的解决方案https://graph.facebook.com/me/fql?q=select message, comments from stream where source_id = 11239244970
正在运行,但在返回评论时,它只返回最后一个。这很简单,Facebook本身如何通过“查看所有XX评论”链接显示流和评论。
可以使用以下方式查询帖子和评论:
https://graph.facebook.com/fql?q={"posts":"select post_id,message, comments from stream where source_id = 11239244970","comments": "select post_id, text, username from comment where post_id in (select post_id from #posts)"}&access_token=...
根据Facebook:
流表的每个查询都限制在前30天或 50个帖子,以较大者为准,但您可以使用特定时间 create_time等字段以及FQL运算符(例如&lt;或&gt;) 检索更多范围的帖子。