4

我最近注意到我在进行 twitter 搜索时不断收到 403 错误。我的应用程序一直在工作,直到几天前我注意到错误。

我检查了 Twitter,他们说我的 IP 没有被阻止,我也在速率限制内 = 每小时大约 60 个搜索请求。

这是我初始化 Twitter 对象的方式 -

private static Twitter TWITTER_CLIENT = new TwitterFactory().getInstance();

在我注意到错误后,我尝试了以下但仍然没有成功 -

private static Twitter TWITTER_CLIENT = new TwitterFactory().getInstance("user", "password");

这就是我搜索的方式 -

TWITTER_CLIENT.search(new Query("#keyword1 OR #keyword2"));

我从我的服务器上尝试了这个 URL(curl http://search.twitter.com/search.json?q=ipad),它工作正常。

以下是例外。我在 java6 + Twitter4j v2.1.2 上。非常感谢任何帮助。谢谢。

TwitterException{statusCode=403, retryAfter=0, rateLimitStatus=null}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:301)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:68)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:82)
    at twitter4j.Twitter.search(Twitter.java:193)
4

2 回答 2

0

最有可能的原因是 Twitter 的基本身份验证关闭(又名 OAuthcalypse):

基本身份验证关闭

您需要切换到使用OAuth

于 2010-09-08T10:13:38.240 回答
0

最近我在执行类似的代码时遇到了同样的错误。要修复它,请访问

  1. https://apps.twitter.com/app/your_app_id
  2. 单击密钥和访问令牌
  3. 在访问级别中,单击修改应用权限并选择第三个选项:读取、写入和访问直接消息
  4. 点击更新。(注意:如果您没有在推特中添加您的号码,您可能需要添加您的手机号码并通过 otp 验证才能获得此访问权限)
  5. 使用可点击按钮重新生成消费者密钥和秘密以及访问令牌和秘密
  6. 在您的程序中使用新密钥

你完成了!您的程序将开始工作。

于 2014-12-08T08:52:24.047 回答