之前我没有使用Twitter API。
我有一个Sinatra应用程序被推送到Heroku,它使用了Twitter的宝石。我在应用程序中做的唯一事情(就Twitter而言)是拉我的5条最新推文。
@tweets = Twitter.user_timeline("username").first(5)
然而,昨晚我无法让它工作,Heroku抛出内部服务器错误,日志告诉我:
2011-12-03T11:30:08+00:00 app[web.1]: Twitter::Error::BadRequest - : Rate limit exceeded. Clients may not make more than 150 requests per hour.:
和堆栈跟踪。重新启动应用程序使其再次运行。
今天我醒来,检查了我的heroku应用程序,我再次收到内部服务器错误..
我可以做些什么来完成这项工作?有没有办法让它缓存推文,以防它抛出BadRequest错误,或者有办法获得无限(或几乎无限制)的Twitter请求?
我没有进行身份验证或其他任何事情。有点困惑。
答案 0 :(得分:2)
对于unauth用户/帐户,您似乎遇到了Twitter's Rate limit:
REST API执行基于帐户和IP的速率限制。未经身份验证的呼叫每小时允许150个请求。未经身份验证的呼叫是根据发出请求的服务器或设备的公共IP来衡量的。
尝试使用OAuth
身份验证:
OAuth调用每小时允许350个请求,并根据请求中使用的oauth_token进行衡量。