Facebook 图形 API 答案延迟

发布于 2024-10-21 06:23:23 字数 547 浏览 1 评论 0原文

我在 iOS 中使用图形 api。 我正在向 FB 中用户的每个朋友发送当前事件的请求:

for( NSDictionary *friend in Friends ) {

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

多谢!

I'm using the graph api in iOS.
I'm sending request to each of the user's friends in FB for their current events:

for( NSDictionary *friend in friends ) {

        NSLog(@"sending events request for %@", [friend objectForKey:@"id"]);
        [facebook requestWithGraphPath:
         [NSString stringWithFormat:@"%@/events&since=today&until=tomorrow&limit=10", [friend objectForKey:@"id"]]
                           andDelegate:self];
    }

for the first answer there is delay of 5 seconds
and the last answer comes after two (!!) minutes or so (for 500 requests - 500 friends).

Is the facebook making this delay on purpose or there is other option here getting all the information at once?

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不再让梦枯萎 2024-10-28 06:23:23

我想知道您是否了解 Facebook 批处理 API?它适合在您发出多个请求时使用。我做了一个简短的搜索,但找不到一个好的链接来指向您,所以我建议您更深入地搜索一下。

另一件需要考虑的事情是将您的 Web 请求放入您在后台启动的另一个线程中,当新数据可用时通知您的主线程(通过 UI),以便您的显示可以更新。就像 ceejayoz 所说,500 个请求已经很多了,很可能存在一些速率限制。从他们的角度来看,使用线程不会使您正在做的事情变得更好,但您将能够最大程度地减少延迟对用户造成的影响。

I'm wondering if you know about the Facebook batch API? It is intended for use when you will make multiple requests. I did a brief search but can't find a good link to point you at so I recommend just googling a bit more deeply.

The other thing to consider is putting your web requests into another thread that you kick off in the background, notifying your main thread (with the UI) when new data is available so your display can be updated. Like ceejayoz says, 500 requests is a lot, chances are there is some rate limiting going on. Using a thread won't make what you are doing any nicer from their point of view but you will be able to minimize the impact to your users that the delay causes.

假装爱人 2024-10-28 06:23:23

有关 Facebook 批处理 API 的详细信息:

https://developers.facebook.com/docs/ Reference/api/batch/

另外,这个问题对于如何使用 Facebook iOS SDK 执行批量请求有一个很好的答案:

Facebook connect 批量请求和 FQL 错误问题

请注意,Batch Api 目前允许每批最多 20 个请求,因此您仍然需要25 个请求 (500/20)。

Details on the Facebook batch API:

https://developers.facebook.com/docs/reference/api/batch/

Also this SO question has a good answer on how to use the Facebook iOS SDK to do a batch request:

Facebook connect Batch requests and FQL error problem

Note that the Batch Api currently allows a max of 20 requests per batch, so you would still have to make 25 requests (500/20).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文