2010-11-10 93 views
1

我試圖使用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上一切工作正常。

+0

已過時的新用戶會遇到此問題:請嘗試此新的OAuth教程:http://goo.gl/99vpL – Blundell 2011-07-24 18:05:27

+0

上面的註釋有誤。此問題仍然完全有效,上面評論中公佈的OAuth教程與此處的問題無關。 – seinecle 2014-05-07 07:09:06

回答

4

一個星期後,一些灰色頭髮後來發現問題出現在服務器關閉的當地時間。有人在Twitter上發佈了明確的錯誤消息,做得很好。

+0

我有同樣的錯誤。請你解釋一下如何解決這個問題。 – 2013-06-18 08:43:27

0

一個隨機數是一個設計爲只能使用一次的值。

我的猜測是你用來生成一個隨機數的代碼是保存隨機數並試圖重用它。

我不熟悉twitter4j庫,但我會檢查並確保您爲每個請求生成一個新的隨機數。

0

對於您的「401:身份驗證憑據丟失或不正確」錯誤。確保您也包含請求的驗證器引腳作爲簽名庫的一部分。

相關問題