从 RestFB 中的 Post 获取用户 ID 评论
Getting User ID Comment from a Post in RestFB
我需要在 post.
中发表评论的用户(或者至少是 ID)
这是一个 java 桌面应用程序。
我得到 access token 并选择了所有权限,仅供测试。
我试过这种方法没有成功:
com.restfb.types.Page fetchedPage = facebookClient.fetchObject(pageName, com.restfb.types.Page.class);
//String pageID = fetchedPage.getId();
//String postID = "some post id from the 'fetchedPage'"
String postParam = "type,from,created_time,message,likes.summary(true),comments.order(chronological).summary(true){from{id}}";
com.restfb.types.Post fetchedPost = facebookClient.fetchObject(pageID + "_" + postID, com.restfb.types.Post.class, com.restfb.Parameter.with("fields", postParam));//the part 'from' of the 'comments' don't work as expected, returns null, that > "comments.order(chronological).summary(true){from{id}}"
com.restfb.types.Comments postComments = fetchedPost.getComments();
if(postComments != null){
for(com.restfb.types.Comment comment : postComments.getData()){
if(comment != null){
//curiously I can not access the user who made the comment, but if it is a page that made a comment in the post it perfectly returns the user (which is a page)
System.out.println("comment: " + comment.getFrom());// >> 'getFrom()' is null << that is what I need, the or at least the ID as told before.
com.restfb.types.Comment fetchedComment = facebookClient.fetchObject(pageID + "_" + comment.getId(), com.restfb.types.Comment.class, com.restfb.Parameter.with("fields", "from,id,message,created_time,like_count,comment_count"));
System.out.println("fetchedComment: " + fetchedComment);//fetching like that the 'getFrom()' is null too...
System.out.println();
}
}
}
有什么提示吗?
对不起 bad English
您可以通过以下方式获取访问令牌:
- 登录您的脸书
- 转到您的个人资料页面
- 右击"View Page Source"
- 查找带有键的文本:"access_token"
如果你只需要评论id,发表评论的用户和她的名字,你可以使用这个代码。
String postId = pageID + "_" + postID; // you should not generate it, take it from the feed
Connection<Comment> commentConnection = facebookClient.fetchConnection(postId + "/comments", Comment.class,
Parameter.with("fields", "id,from{name,id}"));
for (List<Comment> commentList : commentConnection) {
for (Comment comment : commentList) {
System.out.println("Comment ID: " + comment.getId());
System.out.println("User ID: " + comment.getFrom().getId());
System.out.println("User Name: " + comment.getFrom().getName());
}
}
我需要在 post.
中发表评论的用户(或者至少是 ID)这是一个 java 桌面应用程序。 我得到 access token 并选择了所有权限,仅供测试。
我试过这种方法没有成功:
com.restfb.types.Page fetchedPage = facebookClient.fetchObject(pageName, com.restfb.types.Page.class);
//String pageID = fetchedPage.getId();
//String postID = "some post id from the 'fetchedPage'"
String postParam = "type,from,created_time,message,likes.summary(true),comments.order(chronological).summary(true){from{id}}";
com.restfb.types.Post fetchedPost = facebookClient.fetchObject(pageID + "_" + postID, com.restfb.types.Post.class, com.restfb.Parameter.with("fields", postParam));//the part 'from' of the 'comments' don't work as expected, returns null, that > "comments.order(chronological).summary(true){from{id}}"
com.restfb.types.Comments postComments = fetchedPost.getComments();
if(postComments != null){
for(com.restfb.types.Comment comment : postComments.getData()){
if(comment != null){
//curiously I can not access the user who made the comment, but if it is a page that made a comment in the post it perfectly returns the user (which is a page)
System.out.println("comment: " + comment.getFrom());// >> 'getFrom()' is null << that is what I need, the or at least the ID as told before.
com.restfb.types.Comment fetchedComment = facebookClient.fetchObject(pageID + "_" + comment.getId(), com.restfb.types.Comment.class, com.restfb.Parameter.with("fields", "from,id,message,created_time,like_count,comment_count"));
System.out.println("fetchedComment: " + fetchedComment);//fetching like that the 'getFrom()' is null too...
System.out.println();
}
}
}
有什么提示吗? 对不起 bad English
您可以通过以下方式获取访问令牌:
- 登录您的脸书
- 转到您的个人资料页面
- 右击"View Page Source"
- 查找带有键的文本:"access_token"
如果你只需要评论id,发表评论的用户和她的名字,你可以使用这个代码。
String postId = pageID + "_" + postID; // you should not generate it, take it from the feed
Connection<Comment> commentConnection = facebookClient.fetchConnection(postId + "/comments", Comment.class,
Parameter.with("fields", "id,from{name,id}"));
for (List<Comment> commentList : commentConnection) {
for (Comment comment : commentList) {
System.out.println("Comment ID: " + comment.getId());
System.out.println("User ID: " + comment.getFrom().getId());
System.out.println("User Name: " + comment.getFrom().getName());
}
}