1
認証されたユーザーが所有するすべてのノードの返信でコメントを取得する必要があります。RestFBでコメントから返信する番号を取得する方法
私は、ストリームのJava 8と、次の方法でそれを持っている:
private Stream<Comment> getCommentsByObjectAfterThan(final FacebookClient facebookClient, final String objectId, final Date startDate, User user) {
Connection<Comment> commentConnection
= facebookClient.fetchConnection(objectId + "/comments", Comment.class);
return StreamUtils.asStream(commentConnection.iterator())
.flatMap(List::stream)
.flatMap(comment
-> StreamUtils.concat(
getCommentsByObjectAfterThan(facebookClient, comment.getId(), startDate, user), comment)
)
.filter(comment -> !comment.getFrom().getId().equals(user.getId()) &&
(startDate != null ? comment.getCreatedTime().after(startDate) : true));
}
私はトップレベルコメントとその回答とストリームを作成する第二flapMapを最適化する必要があります。
明らかにそれはそうする必要があります:
.flatMap(comment -> comment.getCommentCount() > 0 ? StreamUtils.concat(
getCommentsByObjectAfterThan(facebookClient,comment.getId(), startDate, user), comment) : Stream.of(comment))
問題は、それが常に0コメントが持っているにもかかわらず、応答を返すcomment.getCommentCount()
ということです。
どうすればこの問題を解決できますか?前もって感謝します。
ありがとうございます。出来た –