如何在iOS5中使用单个API请求获取我所有朋友的详细信息?

时间:2012-07-19 16:07:12

标签: iphone api ios5 twitter limit

我正在尝试获取所有用户的用户ID,屏幕名称和个人资料图片链接列表,我正在推特上关注iOS5中的应用程序。 为此,我最初发布以下链接以获取所有朋友的user_id-

“https://api.twitter.com/1/friends/ids.json”

一旦我收到上述URL的响应,这是我在Twitter上关注的所有朋友的user_id的列表,我在单个String中连接所有用户ID,然后使用以下URL获取JSON,这将是包含我所关注的所有用户所需的详细信息 -

“https://api.twitter.com/1/users/lookup.json?user_id=420107765,383684745,312790865,85462891,164199168,140856038&include_entities=screen_name”

在这里,我面临的问题是,如果我关注的朋友数量更多,我的API限制超出错误,虽然我只进行了2次API调用。

令人震惊的是,我仍然可以进行其他Twitter API调用,但是当我进行查询/用户调用以获取仅5到10个用户的信息时,它仍然会给我以下错误---

打印结果说明: {     error =“超出了速率限制。客户每小时的请求数不得超过150个。”;     request =“/ 1/users/lookup.json?user_id=50851703,86254626,88856792,6253282,18839785,145125358,135421739,170416270&include_entities=True&application_id=uk.co.vipul.twt”; }

有人可以给我解决这个问题的方法。 提前致谢 !!!

1 个答案:

答案 0 :(得分:1)

首先,上限为100 UID /屏幕名称。实际的API文档页面(https://dev.twitter.com/docs/api/1/get/users/lookup)没有说明您是否可以包含100个屏幕名称,然后是100个UID,并获得200个结果每次通话?可能有人在论坛/博客中讨论过这个问题,但不是文档页面。为安全起见,请确保将请求限制为每次通话中的< = 100 UID。

我不确定的另一个项目是,include_entities应该是True / False?如果包含实体,则会返回实体信息。当使用这种方式时,我不确定它是否有效,但即使它确实如此,期望结果只是来自推文实体的屏幕名称(这与用户中的屏幕名称不同)似乎是合乎逻辑的。

我相信如果您限制UID的数量,并将include_entities设置为有效(适当的)值,您将获得一个JSON对象,其中包含有关所有UID的大量信息。然后,您可以按计划从该对象中提取信息。