我正在使用谷歌应用引擎,并希望从给定用户下载推文。
我只是打电话给http://api.twitter.com/1/statuses/user_timeline/USERNAME.json
但几乎总是(大约99%)我得到“超出速率限制。客户每小时可能不会超过150个请求”这个问题是否与Google App Engine云基础架构有关?我该怎么办? (例如在其他服务器上存储数据然后从那里调用...)
答案 0 :(得分:8)
这个问题有什么关系吗? 使用Google App Engine Cloud inrastructure
是
您调用的API方法是rate-limited:
呼叫的默认速率限制 REST API每小时150个请求。 REST API确实是帐户和 基于IP的速率限制。经过身份验证 API调用是收费的 验证用户的限制 未经身份验证的API调用将被扣除 来自呼叫IP地址' 分配。
如果您的应用拥有专用IP,这可以正常工作;在App Engine上,许多应用程序可能会为其urlfetch请求使用相同的源IP,因此对Twitter API的未经身份验证的请求都将从相同的配额中提取。
我没有对此进行测试,但我的理解是即使对于不需要身份验证的呼叫,如果您选择对您的请求进行身份验证,也会计入您的帐户配额而不是共享的IP配额。
Nick Johnson发布了a tutorial关于如何从App Engine向Twitter发送经过身份验证的API调用的信息。