阅读没有 oauth 但对我的应用程序有速率限制的 twitter 用户时间线

Posted

技术标签:

【中文标题】阅读没有 oauth 但对我的应用程序有速率限制的 twitter 用户时间线【英文标题】:Read twitter user timeline without oauth but with rate limiting on my application 【发布时间】:2012-05-04 06:00:07 【问题描述】:

基本上我想做的是请求用户的公共时间线(包括转发),而不必使用身份验证,但对我的应用程序而不是 IP 应用速率限制。

我想运行这个请求(针对几个不同的屏幕名称):

http://api.twitter.com/1/statuses/user_timeline.json?screen_name=stephenfry&include_rts=1&trim_user=1

反对 API,但我在代理/防火墙后面,这基本上会导致成千上万的用户共享相同的 IP,这意味着我的 IP 几乎总是受到速率限制。是否可以以某种方式将我的 API 密钥插入到请求中(标头,查询字符串的一部分)并对其进行速率限制而不是 ip?

我真的不想为每个用户完成完整的 OAuth 身份验证机制,因为这需要他们进行交互,我只想阅读他们的公共提要。

我已经为推文实现了本地缓存,因此它每小时/用户名最多会发出 4 个请求,但是当 ip 从一开始就受到速率限制时,这对我没什么好处。

这可以做到吗?如果可以,我该怎么做?

编辑:我应该补充一点,使用 Search API 是不可能的,因为它不会为某些用户返回任何推文(推文太旧了)。

【问题讨论】:

【参考方案1】:

Twitter API 上没有任何形式的仅限应用程序的身份。要发出经过身份验证的请求,您必须具有用户上下文。如果您的集成纯粹是服务器端的,您可以使用代表您自己帐户的单个访问令牌,并以这种方式发出签名、经过身份验证的请求。我不推荐在客户端或分布式环境中使用任何类型的硬编码令牌。您可能想看看使用 Streaming API 和它的跟随过滤器有什么可能 - 允许您实时流式传输特定用户的公共推文。

【讨论】:

以上是关于阅读没有 oauth 但对我的应用程序有速率限制的 twitter 用户时间线的主要内容,如果未能解决你的问题,请参考以下文章

关于 Twitter API 速率限制的问题 - GET users/show

是oauth2仅在有第三方授权时使用?

有没有办法限制 Kinesis Consumer 的速率?

c++中向量的限制

更改所有提交的 git 作者信息对我的一个存储库有效,但对其他存储库无效,为啥?

Grails - 限制 IP 地址的上传速率