【问题标题】:Error 401 when trying to update status with twitter4j尝试使用 twitter4j 更新状态时出现错误 401
【发布时间】:2011-05-08 01:47:39
【问题描述】:

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

401:身份验证凭据丢失或不正确。 {"error":"无效\/使用了 nonce","re​​quest":"\/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() 值不应该取决于我运行它们的机器,它们应该可以在任何地方工作,对吧?

这个错误信息是什么意思?我不明白“使用过的随机数”部分。

更新

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

在本地主机上一切正常。

【问题讨论】:

  • 已弃用,新人遇到此线程:试试这个新的 OAuth 教程:goo.gl/99vpL
  • 上面的评论是错误的。这个问题仍然完全有效,上面评论中宣传的 OAuth 教程与这里的问题无关。

标签: java twitter twitter-oauth twitter4j http-status-code-401


【解决方案1】:

一个星期后,白发了几根,结果发现问题出在本地时间的服务器上,该服务器已关闭。有人做得很好,在 Twitter 上显示了清晰的错误消息。

【讨论】:

  • 我有同样的错误。请你解释一下如何解决这个问题。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-08
      • 2020-10-09
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2013-06-21
      相关资源
      最近更新 更多