我在iOS中使用图形api。 我正在向FB中的每个用户的朋友发送请求,以了解他们当前的事件:
for(NSDictionary *朋友的朋友){
NSLog(@"sending events request for %@", [friend objectForKey:@"id"]);
[facebook requestWithGraphPath:
[NSString stringWithFormat:@"%@/events&since=today&until=tomorrow&limit=10", [friend objectForKey:@"id"]]
andDelegate:self];
}
第一个答案是延迟5秒 最后一个答案是在两(!!)分钟左右后(500个请求 - 500个朋友)。
facebook是故意延迟还是有其他选项可以立即获取所有信息?
非常感谢!
答案 0 :(得分:1)
我想知道您是否了解Facebook批处理API?它适用于您提出多个请求的情况。我做了一个简短的搜索,但找不到一个指向你的好链接所以我建议只是谷歌搜索更深。
另一件需要考虑的事情是将您的Web请求放入另一个在后台启动的线程中,当新数据可用时通知主线程(使用UI),以便更新显示。像ceejayoz说的那样,500个请求很多,很可能会有一些速率限制。从他们的观点来看,使用一个线程不会使你正在做的事情变得更好,但你将能够最大限度地减少延迟导致的对用户的影响。
答案 1 :(得分:0)
Facebook批处理API的详细信息:
https://developers.facebook.com/docs/reference/api/batch/
此SO问题对如何使用Facebook iOS SDK进行批量请求有一个很好的答案:
Facebook connect Batch requests and FQL error problem
请注意,批处理Api目前每批最多允许20个请求,因此您仍需要发出25个请求(500/20)。