Java 尝试使用twitter4j更新状态时出现错误401

Java 尝试使用twitter4j更新状态时出现错误401,java,twitter,twitter-oauth,twitter4j,http-status-code-401,Java,Twitter,Twitter Oauth,Twitter4j,Http Status Code 401,我正在尝试使用twitter4j更新twitter上的状态。在本地主机上一切正常,但当我尝试在服务器上执行此操作时,会出现授权错误: 401:身份验证凭据丢失或不正确。 {“error”:“Invalid\/used nonce”,“request”:“\/1\/statuses\/update.json”} TwitterException{exceptionCode=[15bb6564-00e4d61f],状态代码=401,retryAfter=0,rateLimitStatus=null,

我正在尝试使用twitter4j更新twitter上的状态。在本地主机上一切正常,但当我尝试在服务器上执行此操作时,会出现授权错误:

401:身份验证凭据丢失或不正确。 {“error”:“Invalid\/used nonce”,“request”:“\/1\/statuses\/update.json”} TwitterException{exceptionCode=[15bb6564-00e4d61f],状态代码=401,retryAfter=0,rateLimitStatus=null,版本=2.1.7-SNAPSHOT(内部版本:6498f401635aacf3388891cc5140b2086ff3f8aa)}

我在localhost上使用“PIN”方法为用户生成了访问令牌。我认为它在哪里生成并不重要,
accessToken.getToken()
accessToken.getTokenCret()
值不应该取决于我运行它们的机器,它们应该在任何地方工作,对吗

这个错误消息是什么意思?我不明白“用过的暂时”部分

更新

好吧,有些地方真的搞砸了。我正在尝试在服务器上生成访问令牌,但甚至无法为我生成授权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)

在本地主机上,一切正常。

nonce是一个设计为只使用一次的值

我的猜测是,您用来生成nonce的代码正在保存nonce并尝试重用它


我不熟悉twitter4j库,但我会检查并确保您为每个请求生成一个新的nonce。

nonce是一个设计为只使用一次的值

我的猜测是,您用来生成nonce的代码正在保存nonce并尝试重用它


我不熟悉twitter4j库,但我会检查并确保您正在为每个请求生成新的nonce。

对于您的“401:身份验证凭据丢失或不正确”错误。确保在请求中也包含验证器pin作为签名库的一部分。

对于“401:身份验证凭据丢失或不正确”错误。确保在请求中也包含验证器pin作为签名库的一部分。

一周后,几根白发发现问题出在本地时间,服务器关闭。有人在推特上做得很好,有明确的错误信息。

一周后,有人发现问题出在当地时间一台关闭的服务器上。有人在推特上用清晰的错误消息做得很好。

不推荐,新用户遇到此问题:试试这个新的OAuth教程:上面的评论是错误的。这个问题仍然是完全有效的,上面评论中广告的OAuth教程与这里的问题没有任何关系。不推荐,新用户遇到这个问题:试试这个新的OAuth教程:上面的评论是错误的。这个问题仍然是完全有效的,上面评论中广告的OAuth教程与这里的问题没有任何关系。我有同样的错误。请您解释一下如何解决这个问题。我有同样的错误。请您解释一下如何解决这个问题。