我有一个逻辑问题,我似乎无法解决(可能)。
示例:
这几乎可以了,但我似乎无法找到一种方法来做到这一点,而不会让foreach循环一遍又一遍地调用api,如果我还有几百个组,那么它就是不可能的。
PS:我使用FQL atm但是能够使用图表,我已经用3种不同的方式对此进行了编码,但没有成功。 这是我能得到的最远的: SELECT actor_id,source_id FROM stream WHERE source_id IN (select gid from group_member where uid = me())
它只会从一个页面返回,如果没有foreach要求每个组发送10条最新消息,可能无法返回所有这些内容。
答案 0 :(得分:1)
没有必要使用FQL批处理。这可以通过简单的Graph API请求来完成:恕我直言:
GET /me/groups?fields=id,name,feed.fields(id,message).limit(10)
这将为每个群组返回10个帖子。如果要返回的数据太多,请尝试为基本查询设置limit参数:
GET /me/groups?fields=id,name,feed.fields(id,message).limit(10)&limit=20
然后,您将在结果JSON中获得下一个字段。通过调用此字段中包含的URL,您将获得下一个结果。这样做直到结果为空,然后你到达终点。
答案 1 :(得分:0)
您可以使用此处所述的批量调用https://developers.facebook.com/docs/graph-api/making-multiple-requests/
使用批量请求,您可以一次请求最多50个电话。注意,批量请求不会增加速率限制,因此如果批量生成50个请求,则将其视为50个调用,而不是一个。但是,您将在更短的时间内得到答复。
如果您认为自己拨打过多电话,则应在通话之间加一些延迟,避免限速。