facebook图表api的延迟答案

时间:2011-03-09 21:11:31

标签: iphone ios facebook fbml

我在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是故意延迟还是有其他选项可以立即获取所有信息?

非常感谢!

2 个答案:

答案 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)。