繁体   English   中英

从facebook4j的帖子中获取评论

[英]Take comments from a post with facebook4j

我正在使用facebook4j和java,我会在Facebook的公开个人资料中发表所有评论。 我设法阅读每篇文章的前25条评论,但不是其他所有内容。 我知道有一个分页逻辑,但我无法在页面之间传递。 我从帖子中获取评论的代码是:

ResponseList<Post> feeds = facebook.getFeed(p.getRiferimento());
Post post = feeds.get(0);
PagableList<Comment> commenti = post.getComments();
commenti.size();   // return me always 25

我试图循环纪念,但我只到达第一个元素; 我也尝试将PagableList转换为数组,但它只有25个元素。 如果我从纪念中采取Paging或Cursor并且我循环它们,它们会循环; 最后,如果我写getCount()它返回我总是null。

有人可以帮帮我吗?

不确定这回答你的问题是否为时已晚。

是的,您需要使用Paging来获取下一页的项目,使用fetchNext()来获取页面中的项目。 如果到达页面末尾,它将返回null。 以下是示例:

public List<Comment> getComments(Post post) {
    List<Comment> fullComments = new ArrayList<>();
    try {
        // get first few comments using getComments from post
        PagableList<Comment> comments = post.getComments();
        Paging<Comment> paging;
        do {
            for (Comment comment: comments)
                fullComments.add(comment);

            // get next page
            // NOTE: somehow few comments will not be included.
            // however, this won't affect much on our research
            paging = comments.getPaging();
        } while ((paging != null) && 
                ((comments = fb_.fetchNext(paging)) != null));

    } catch (FacebookException ex) {
        Logger.getLogger(Facebook.class.getName())
                .log(Level.SEVERE, null, ex);
    }

    return fullComments;
}

但是(我在评论中添加了一个注释),很少有评论会丢失。 我还不确定原因。 由于这个数字很小而且不会影响我的研究,所以我会留下它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM