如果你有read_stream
权限,并且你得到了Facebook用户的帖子,那么对于每个帖子,你只能得到前X条评论和前X个赞。有没有办法通过喜欢/评论进行分页并将它们全部获取?
如果有任何 FQL 查询会返回帖子的所有喜欢或评论,或者让我一次浏览 20 个左右,那也可以工作。
已编辑:
您必须获取每个状态才能获得有关该状态的所有评论/喜欢。如果您有想要评论的特定帖子:
$post = '100003978045030_105596009583000';
$comments = array();
$done = false;
$options = array();
$path = '/' . $post . '/comments';
while(!$done){
try{
$data = $facebook->api($path, 'GET', $options);
} catch(FacebookApiException $e) {
echo $e->getMessage();
$data = null;
$done = true;
}
if(!is_null($data)){
$comments = array_merge($comments, $data['data']);
if(isset($data['paging']['next']) && !empty($data['paging']['next'])){
$parts = parse_url($data['paging']['next']);
$path = $parts['path'];
parse_str($parts['query'], $options);
} else {
$done = true;
}
}
}
print_r($comments);
在 FQL 中,您只需查询注释或 like 表:
SELECT post_id, text, fromid FROM comment
WHERE post_id IN
(SELECT post_id FROM stream WHERE source_id = USER_OR_PAGE_ID
AND comments.count > 0 )
LIMIT 0, 100
这将为您提供前 100 个结果(但返回的结果可能少于 100 个,因为那些对您不可见的结果将被过滤掉)。
请注意,对于页面流,类似表是蹒跚的。