我正在尝试使用 twitter4j 更新 twitter 上的状态。在本地主机上一切正常,但是当我尝试在服务器上执行此操作时,出现授权错误:
401:身份验证凭据丢失或不正确。{"error":"Invalid \/ used nonce","request":"\/1\/statuses\/update.json"} TwitterException{exceptionCode=[15bb6564-00e4d61f], statusCode=401, retryAfter=0, rateLimitStatus =null,版本=2.1.7-SNAPSHOT(构建:6498f401635aacf3388891cc5140b2086ff3f8aa)}
我在本地主机上使用“PIN”方法为用户生成了访问令牌。我认为它在哪里生成并不重要,accessToken.getToken()
值accessToken.getTokenSecret()
不应该取决于我运行它们的机器,它们应该在任何地方工作,对吧?
这个错误信息是什么意思?我不明白“使用过的随机数”部分。
更新
好的,某处真的搞砸了。我现在正在尝试在服务器上生成访问令牌,甚至无法为我生成授权 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)
在本地主机上一切正常。