最近我一直在用java从post_id获取用户信息。我是restfb的新手,但经过研究,下面的代码应该可以工作了。将授予所有可用权限。即使在Graph API资源管理器中,当编写post_id时,我也无法检索到post的作者详细信息。我就是这样做的:
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。
我该怎么修?
提前谢谢。
您需要使用fields参数获取提要,以便Facebook知道需要填充哪些字段。RestFB只能提供对Facebook提供的信息的访问;)
看看这里:http://restfb.com/#selecting-特定字段
Norbert是正确的,但他发布的链接对我不起作用——你需要包含"Parameter.withs("fields","from")"来获取用户信息。
Connection<Post> pagePosts = facebookClient.fetchConnection(command, Post.class, Parameter.with("fields", "from"));