2010-07-16 140 views
3

我写了一个小型java程序,可以从twitter下载所有朋友和关注者的个人资料图片。但是我收到一个错误,因为每个IP地址每小时只允许150个请求。Twitter API请求限制问题

确切的错误是:

twitter4j.TwitterException: 400:The request was invalid. An accompanying error message will explain why. This is the status code will be returned during rate limiting. 
<?xml version="1.0" encoding="UTF-8"?> 
<hash> 
    <request>/users/show/92715794.xml</request> 
    <error>Rate limit exceeded. Clients may not make more than 150 requests per hour.</error> 
</hash> 

有没有解决这个问题的方法... ???请帮忙...

+0

哦,是的,你为什么不使用OAuth? BASIC Http身份验证自2010年7月1日起已被弃用。您每小时可以获得350个请求。唯一的问题是你需要在Twitter.com上创建一个应用程序。 – 2010-07-16 13:24:47

+2

可能只是巧合,但错误消息中的Twitter用户似乎与其中一个“填写调查问卷”的垃圾邮件网站和谷歌搜索URL以及“垃圾邮件”导致许多相同的推特被盗用或虚假的Twitter帐户。这样的垃圾邮件是Twitter首先限制速度的原因之一 – barrowc 2010-07-17 06:30:50

回答

6

作为开发者,您可以请求将您的帐户列入白名单,将限制提高到20 000个请求/小时。更多详情http://apiwiki.twitter.com/Rate-limiting

+0

正是我要说的。 +1 – RobertPitt 2010-07-16 13:12:46

+0

我不知道这个! +1 – 2010-07-16 13:12:59

+0

感谢Løkling...我填写了表格... – codemaniac 2010-07-16 13:31:33

1

有没有解决这个问题的方法......?

是的。放慢您的流程,以便每小时只能处理150个请求。

+0

由于我需要下载个人资料照片,因此我无法放慢速度。如果我只是建立一个叽叽喳喳客户端,我可以有。 – codemaniac 2010-07-16 13:12:55

1

您可以

  1. 将您的应用白名单(20 000 REQ /小时)
  2. 而不是做身份认证的请求的,使用OAuth(350 REQ /小时)
  3. 慢认证向下请求

判断您的描述,我不知道您是否可以期望获得白名单。考虑到你不会获益太多,实施OAuth可能不值得遇到麻烦。看来你坚持要慢一点。

+0

Twitter现在有OAuth认证,BASIC已被弃用。 – 2010-07-16 13:24:10

+0

你是对的,我澄清了我的答案。 – 2010-07-16 13:31:59

+0

为什么我不能期望获得白名单.. ??什么是标准......? – codemaniac 2010-07-16 13:33:00