如何获得Facebook帖子的所有评论和喜欢?

时间:2012-06-15 01:25:06

标签: php facebook facebook-like facebook-comments

如果您拥有read_stream权限,并且您获得了Facebook用户的帖子,那么对于每个帖子,您只能获得前X个评论和前X个喜欢。有没有办法对喜欢/评论进行分页并将它们全部搞定?

如果有任何FQL查询可以返回帖子的所有喜欢或评论,或者让我一次翻阅20个左右,那也可以。

2 个答案:

答案 0 :(得分:2)

编辑:

您必须获取每个状态才能获得该状态的所有评论/喜欢。如果您有特定帖子,则需要评论:

$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);

答案 1 :(得分:1)

在FQL中,您只需查询commentlike表:

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个结果,因为您将看不到那些不可见的结果。)

请注意,类似的表格会因页面流而出现问题。