我試圖使用twitter4j更新twitter上的狀態。一切工作正常在本地主機上,但是當我嘗試這樣做在服務器上,我得到授權錯誤:嘗試更新twitter4j狀態時出現錯誤401
401:Authentication credentials were missing or incorrect. {"error":"Invalid \/ used nonce","request":"\/1\/statuses\/update.json"} TwitterException{exceptionCode=[15bb6564-00e4d61f], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.7-SNAPSHOT(build: 6498f401635aacf3388891cc5140b2086ff3f8aa)}
我生成的訪問令牌使用本地主機上的「PIN」方法的用戶。我認爲它不應該在什麼地方生成,accessToken.getToken()
和accessToken.getTokenSecret()
值不應該取決於我運行它們的機器,它們應該在任何地方工作,對吧?
這個錯誤信息是什麼意思?我不明白「使用隨機數」部分。
UPDATE
好東西是真的搞砸了某個地方。我想立即生成一個服務器上的訪問令牌甚至不能讓它產生授權URL對我來說:
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer("twitterConsumerKey", "twitterConsumerSecret");
RequestToken requestToken = twitter.getOAuthRequestToken();
System.out.println(requestToken.getAuthorizationURL());
這種失敗:
401:Authentication credentials were missing or incorrect.
Failed to validate oauth signature and token
TwitterException{exceptionCode=[68a00bf1-d29b9452], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.7-SNAPSHOT(build: 6498f401635aacf3388891cc5140b2086ff3f8aa)}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:308)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72)
at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103)
at twitter4j.http.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:124)
at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthRequestToken(TwitterOAuthSupportBaseImpl.java:87)
at twitter4j.Twitter.getOAuthRequestToken(Twitter.java:54)
at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthRequestToken(TwitterOAuthSupportBaseImpl.java:80)
at twitter4j.Twitter.getOAuthRequestToken(Twitter.java:54)
localhost上一切工作正常。
已過時的新用戶會遇到此問題:請嘗試此新的OAuth教程:http://goo.gl/99vpL – Blundell 2011-07-24 18:05:27
上面的註釋有誤。此問題仍然完全有效,上面評論中公佈的OAuth教程與此處的問題無關。 – seinecle 2014-05-07 07:09:06