2

我制作了 twiiter 应用程序,并制作了一个循环以从 twitter API 获取数据它显示错误

[raw] => HTTP/1.1 429 Too Many Requests
[content-type: application/json; charset=utf-8
date: Fri, 29 Mar 2013 20:03:07 UTC
server: tfe
set-cookie: guest_id=v1%3A136458738755627462; Domain=.twitter.com; Path=/; Expires=Sun, 29-Mar-2015 20:03:07 UTC

我该如何解决

4

3 回答 3

13

Twitter API 文档有一篇关于rate-limiting的长文章。

15 分钟窗口

API 1.1 版本中的速率限制分为 15 分钟间隔,这与 1.0 版本中的 60 分钟块有所不同。此外,所有 1.1 端点都需要身份验证,因此不再有未经身份验证的呼叫和速率限制的概念。

虽然在 API 的第一个版本中,启用 OAuth 的应用程序可以每小时每个访问令牌发起 350 个基于 GET 的请求,但 API v1.1 的速率限制模型允许通过每个方法请求限制来处理更广泛的请求。有两个初始存储桶可用于 GET 请求:每 15 分钟调用 15 次,每 15 分钟调用 180 次。

速率限制页面显示哪个资源允许每 15 分钟的请求数。

在 15 分钟的窗口中发出更少的请求。您可以缓存来自 API 的响应并从那里读取数据,而不是每次都通过查询 API 来刷新数据。例如,不要在用户每次点击按钮时都查询主时间线,而是从之前读取缓存的结果。然后为缓存设置一个超时,这样您的缓存数据就不会过时太多。

于 2013-04-01T17:25:49.193 回答
2

您过于频繁地尝试请求更新。等待一个小时,然后重新运行您的应用程序,但仅每 5 分钟查询一次 Twitter。

于 2013-04-01T16:56:20.830 回答
1

我找到了可以帮助您的东西:将其设置为 wait_on_rate_limit = True

tw.API(auth,wait_on_rate_limit=True)
于 2019-08-24T06:35:57.137 回答