【发布时间】:2016-12-22 06:27:04
【问题描述】:
我知道我可以使用http://apiwiki.twitter.com/w/page/24142947/Twitter-REST-API-Method:-users-lookup 方法来查找一个人的用户信息,但是如果我必须加载大量用户怎么办?例如,一次有 40-50 个用户。我会调用该方法 40-50 次吗?考虑到 API 有限制,这似乎有点苛刻,它会阻止用户使用自己的帐户。
有没有更好的办法?
【问题讨论】:
我知道我可以使用http://apiwiki.twitter.com/w/page/24142947/Twitter-REST-API-Method:-users-lookup 方法来查找一个人的用户信息,但是如果我必须加载大量用户怎么办?例如,一次有 40-50 个用户。我会调用该方法 40-50 次吗?考虑到 API 有限制,这似乎有点苛刻,它会阻止用户使用自己的帐户。
有没有更好的办法?
【问题讨论】:
首先,您应该在 dev.twitter.com 上为您的文档使用较新的开发者网站。你需要的页面是:https://dev.twitter.com/rest/reference/get/users/lookup
此 API 调用接受由逗号分隔的最多 100 个 user_id 的字符串: http://api.twitter.com/1/users/lookup.json?user_id=783214,6253282
您会返回一个包含用户列表的 JSON 对象。在 PHP 中,您将使用 json_decode() 来使用此数据,然后使用 foreach() 循环来逐步遍历每个用户对象。
结果以随机顺序返回(不是按照您要求的顺序),因此您必须逐步检查每个用户,并将它们添加到数据库或数组中以进行进一步处理。
其中一个大问题是,已删除或暂停的用户将不会返回任何数据,因此您必须将结果的 user_ids 与您请求的结果进行比较,以确定哪些未返回。
在每次调用 100 个用户和每小时 350 个 API 调用时,您每小时可以获得 35,000 个用户的完整帐户信息。如果您获得需要随时间分布的用户数据,您可以将它们收集到一个批次中,并在累积到 100 个时将其发送出去。
【讨论】: