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

Twitter (Tweepy): What counts as a search API call?

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

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

其次,使用搜索API,我可以看到我可以450 requests for each 15-minute interval。什么算作请求?在 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 获取尽可能多的数据。我仍然不完全理解什么算作时间 window,以及 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 还为您提供 headers 响应,帮助您防止达到速率限制:

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

所以在 pseudo-code 中你可以 if request.response.headers['x-rate-limit-remaining'] <= 2: 并停止或做其他事情直到重置时间。