5

我正在使用 Twitter4j 版本 3.0.3。

我正在尝试提取关注者 ID 并使用 OAuth。我多年来一直在使用 Twitter4j,并且对该框架比较有经验。

但是发生了一些奇怪的事情:我的程序将运行良好,然后间歇性地抛出以下堆栈跟踪:

Exception in thread "main" 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
{"request":"\/1.1\/followers\/ids.json?user_id=20801287&cursor=-1&include_entities=1&include_rts=1","error":"Not authorized"}

Relevant discussions can be found on the Internet at:
    http://www.google.co.jp/search?q=92c30ec6 or
    http://www.google.co.jp/search?q=19400604
TwitterException{exceptionCode=[92c30ec6-19400604], statusCode=401, message=null, code=-1, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=6, limit=15, resetTimeInSeconds=1362898120, secondsUntilReset=890}, version=3.0.3}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89)
    at twitter4j.TwitterImpl.get(TwitterImpl.java:1817)
    at twitter4j.TwitterImpl.getFollowersIDs(TwitterImpl.java:400)

它在以下行抛出上述内容:

IDs ids= twitter.getFollowersIDs(id,cursor);

上面的行执行得很好,然后没有警告就失败了。

注意:我正在检查速率限制,上次遇到这个时,以下行提取的速率限制 JSON 对象是(如下):

RateLimitStatus rls=twitter.getRateLimitStatus().get("/followers/ids")

RateLimitStatusJSONImpl{remaining=7, limit=15, resetTimeInSeconds=1362898120, secondsUntilReset=890}

我认为这可能是 Twitter 的间歇性事件,但现在已经持续了几天。

我已经从各种机器上尝试过,但遇到了完全相同的问题。

呼叫以这种方式失败,大约在 20 次呼叫中失败。

我还阅读了关于 SE 的类似问题:

  1. Twitter4j 401 身份验证——但是,这是 OAuth 不起作用的情况——在我的情况下,它似乎工作正常,直到它当然不起作用。

  2. twitter4j:即使我已经设置了凭据错误?- 与我的情况类似的情况也不多。

  3. twitter4j 的 Oauth 问题- 建议将应用程序注册为网络应用程序,我已经完成了,我已经填写了回调 url(虽然它什么也没做),但仍然没有运气。

4

1 回答 1

3

该异常似乎是由可能是私有的 twitter 个人资料的 id 引起的。

于 2013-03-11T05:38:00.067 回答