gpt4 book ai didi

java - facebook4j graph api 将帖子的评论数量限制为 25

转载 作者:行者123 更新时间:2023-12-01 12:11:47 25 4
gpt4 key购买 nike

我正在尝试获取粉丝页面示例“narendramodi”上特定帖子发布的所有评论但是 facebook graph API 如何将评论数量限制为 25 ,因为我的应用程序因“线程“main”中的异常 java.lang.IndexOutOfBoundsException: Index: 25, Size: 25”而崩溃

我正在使用分页和 fetchNext ,但它仍然不起作用。

这是我的代码 -

public class Facebooktest { 

static Facebook facebook;

public static void main(String[] args) throws FacebookException, IOException {
// Make the configuration builder
ConfigurationBuilder confBuilder = new ConfigurationBuilder();
confBuilder.setDebugEnabled(true);

// Set application id, secret key and access token
confBuilder.setOAuthAppId("MyID");
confBuilder.setOAuthAppSecret("MyAppSecret");

confBuilder.setOAuthAccessToken("MyAccessToken");

// Set permission
confBuilder.setOAuthPermissions("email,publish_stream, id, name, first_name, last_name, generic");
confBuilder.setUseSSL(true);
confBuilder.setJSONStoreEnabled(true);

// Create configuration object
Configuration configuration = confBuilder.build();

// Create facebook instance
FacebookFactory ff = new FacebookFactory(configuration);
facebook = ff.getInstance();

ResponseList<Post> results = facebook.getPosts("narendramodi");

//facebook.getFriends(new Reading().fields("gender"));
/*System.out.println("success");
System.out.println(facebook.getMe().getFirstName());*/

String userId="";

for (Post post : results) {
System.out.println(post.getMessage() +"===="+ + post.getSharesCount() +"====="+ post.getLikes().size()); // Gives a max of 25 likes


List<Comment> userComments = getComments(post);


for (int j = 0; j < userComments.size(); j++) {

userId=post.getComments().get(j).getFrom().getId();
User user = facebook.getUser(userId);

System.out.println(user.getFirstName() + "---- "+ post.getComments().get(j).getLikeCount() +"---- "+ user.getHometown() + "======" + userComments.get(j).getMessage());

}
}

}

public static List<Comment> getComments(Post post) {
List<Comment> fullComments = new ArrayList<>();
try {

PagableList<Comment> comments = post.getComments();
Paging<Comment> paging;
do {
for (Comment comment: comments)
fullComments.add(comment);


paging = comments.getPaging();
} while ((paging != null) &&
((comments = facebook.fetchNext(paging)) != null));

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

return fullComments;
}

}

另外,如何获取页面上发布的主要“帖子”的总点赞数。 ?由于这部分代码 (post.getLikes().size()) 最多给出 25 个赞!

提前致谢:)

最佳答案

默认情况下,返回的第一个项目数限制为 25,最大为 250。因此,您需要在调用中添加“limit(250)”参数。

其次,您需要通过在评论或点赞调用中添加“filter(stream)”参数来返回所有评论/点赞。由于“故事”值(value)较低,Facebook“隐藏”了一些评论或点赞。

最后,要获得总计数,您需要在您的评论或点赞调用中添加“summary(true)”参数。这将给出一个“summary”键,以及一个“total_count”键,其值为所有评论或喜欢的总数。 (如果省略上面的过滤器参数,它将只计算可见的)

请参阅我的评论以获取更多详细信息。 Facebook Graph Api : Missing comments

关于java - facebook4j graph api 将帖子的评论数量限制为 25,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27229922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com