[英]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.