2010-11-10 92 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:身份验证凭据丢失或不正确”错误。确保您也包含请求的验证器引脚作为签名库的一部分。

相关问题