我想获取带有评论和子评论的facebook Post(lib:restfb for java)
public Post getNewPost(String postId) {
...
String fields = ".... fields ...";
Post foundPost = facebookClient.fetchObject(postId, Post.class, Parameter.with("appsecret_proof", prof), Parameter.with("fields", fields));
效果很好,提取帖子和帖子内容。我的问题是“请求”花费了我对每个评论和子评论的api呼叫?
E.g
1)post - > 2条评论
通过获取此帖子,我将使用1个api通话(1个用于帖子和内容)或3个api通话? (1代表帖子,2代表评论)。
我知道图api提供.limit(x)函数,但我必须从这篇文章中获取帖子和任何评论,至少有N个历史评论。如果它是评论或子评论并不重要。所以我不能使用until / since和limit函数。
所以我的第二个问题是有没有办法只用1 api调用来获取帖子和所有评论和子评论,或者如何最小化api调用。
答案 0 :(得分:0)
好的,答案是:这取决于。您无法在一次通话中获得无限量的评论,因此您必须翻阅评论。
要获取所有评论和子评论,您可以使用filter=stream
参数。使用此选项,所有注释和子注释都按时间顺序返回为普通列表。见https://developers.facebook.com/docs/graph-api/reference/v2.9/object/comments/
如果您只获取一条包含所有评论的帖子,您可以获取帖子(1个电话),然后获取依赖评论(总计数评论+子评论除以每页元素数)。我不确定每页可以获得的最大限制,但我认为它在200到500之间。所以你可以优化通话。
顺便说一句,您可以使用您的帖子获取评论计数,如果没有评论,请删除请求评论。或者您可以使用帖子获取评论的最大限制。然后,只有在超过最大限度注释时才必须进行寻呼。