我正在制作一个Java应用程序,用于浏览Facebook公共页面中较新和较旧的帖子。
我有以下代码来检索完整的帖子提要:
String id = "<my app id>";
String secret = "<my app secret>";
String accessToken = "<my app access token>";
String pageId = "<my page id>";
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setRestBaseURL("https://graph.facebook.com/v2.8/");
Facebook fb = new FacebookFactory(cb.build()).getInstance();
fb.setOAuthAppId(id, secret);
fb.setOAuthAccessToken(new AccessToken(accessToken));
ResponseList<Post> posts = fb.getFeed(pageId, (new Reading()).limit(100).includeHidden(true));
Set<String> postIds = new LinkedHashSet<>();
do {
for (Post p : posts) {
postIds.add(p.getId());
}
posts = fb.fetchNext(posts.getPaging());
}
while (posts != null && !posts.isEmpty());
System.out.println("Number of posts: " + postIds.size());
几个月前(十一月至十二月),使用此代码进行特定页面总能得到一份包含15000多个帖子的列表。几天前,我没有做任何修改,只有3000多个帖子。我在其他页面上看到了类似的结果。但是,在前段时间使用带有15000+帖子ID的旧文件时,我确定许多未在较小Feed中显示的帖子仍然存在,可以使用图谱API进行访问。
为什么不再出现很多帖子(特定情况下为12000+)?这是Graph API中的错误吗?有没有其他方法来检索完整的帖子提要?
注意:我使用的是Facebook4j 2.4.8。