最近,我一直在努力使用java从post_id获取用户信息。我是restfb的新手,但在重新研究之后,下面的代码应该可行。授予所有可用权限。甚至在撰写post_id时在Graph API资源管理器中,我无法检索帖子的作者详细信息。 我就是这样做的:
FacebookClient facebookClient = new DefaultFacebookClient(token);
String command = "orangepolska/feed";
Connection<Post> pagePosts = facebookClient.fetchConnection(command, Post.class);
ArrayList<String> postList = new ArrayList<String>();
String row;
for( List<Post> posts : pagePosts){
for (Post post : posts) {
if (post.getCreatedTime().after(startDate) && post.getCreatedTime().before(endDate)){
String message = post.getMessage();
CategorizedFacebookType postedBy = post.getFrom();
Post.Comments comments = post.getComments();
row = " owner: "+postedBy.getName()+" owner_id: "+postedBy.getId()+" post: "+message+" + " likes: "+post.getLikesCount() + "\n";
System.out.println(row);
postList.add(row);
}
}
}
return postList;
问题出现在各种函数中:getName(),getID(),getLikesCount()等 - 这些函数返回null。
我该如何解决?
提前致谢。
答案 0 :(得分:0)
您需要使用fields参数获取Feed,以便Facebook知道您需要填写哪些字段。 RestFB只能访问Facebook提供的信息;)
答案 1 :(得分:0)
Norbert是正确的,但他发布的链接对我不起作用 - 你需要包含&#34; Parameter.with(&#34; fields&#34;,&#34; from&#34;)&#34 ;获取用户信息。
Connection<Post> pagePosts = facebookClient.fetchConnection(command, Post.class, Parameter.with("fields", "from"));