Twitter(Tweepy):什么算作搜索API调用?



我一直在尝试找出使用Twitter的API在每15分钟间隔内可以进行的最大API调用次数。但是,我仍然不明白究竟什么算作 API 调用以及限制是如何工作的。

首先,什么算作 15 分钟的间隔?这是否意味着我有一组由小时决定的调用次数,因此我每天都可以在 9:30 到 9:45 之间发出 450 个请求,还是由我进行第一次 API 调用的时间决定,所以我可以在发出第一个请求后发出 450 个请求?

其次,使用搜索 API,我可以看到我可以为每个 15 分钟的间隔发出 450 个请求。什么算作请求?在Tweepy,我可以打电话

searched_tweets = [status for status in tweepy.Cursor(api.search, q=topic, tweet_mode='extended').items(1000)]

以获取有关主题的 1000 条推文,其中主题是字符串。这将需要多少次 API 调用?由于查询大小计数的限制似乎是每次调用 100 个,Tweepy 是否进行了 10 次调用?或者,由于默认值为 15,Tweepy 是否进行 100/15 次调用?有什么我没有做任何事情来最大化效率吗?

基本上,我正在尝试为每个Twitter API获取尽可能多的数据。我仍然不完全理解什么算作时间窗口,以及Twitter如何确定搜索API调用。任何帮助不胜感激!

一般来说,1 个 API 调用 == 1 个 HTTP 请求(GET、POST、PUT、DELETE(。 通过推特,他们以 15 分钟为增量来衡量这一点。在 15 分钟内,您可以执行 X 个 Y 请求类型和终结点。 https://dev.twitter.com/rest/public/rate-limits

https://dev.twitter.com/rest/public/rate-limiting

Twitter 还为你提供了响应的标题,帮助你防止达到速率限制:

x-rate-limit-limit: the rate limit ceiling for that given endpoint
x-rate-limit-remaining: the number of requests left for the 15 minute window
x-rate-limit-reset: the remaining window before the rate limit resets, in UTC epoch seconds

因此,在伪代码中,您可以if request.response.headers['x-rate-limit-remaining'] <= 2:并停止或执行其他操作,直到重置时间。

最新更新