1

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)

ローカルホストでは、すべてが正常に機能します。

4

3 に答える 3

4

1週間後、数本の白髪の状態で、問題はオフになっているサーバーの現地時間にあることが判明しました。誰かがTwitterで明確なエラーメッセージを表示して素晴らしい仕事をしました。

于 2010-11-16T19:56:52.110 に答える
0

ナンスは、1回だけ使用するように設計された値です。

私の推測では、ナンスを生成するために使用しているコードは、ナンスを保存して再利用しようとしています。

私はtwitter4jライブラリに精通していませんが、リクエストごとに新しいナンスを生成していることを確認します。

于 2010-11-10T19:15:37.030 に答える
0

「401:認証クレデンシャルが見つからないか正しくない」エラーの場合。署名ベースの一部として、リクエストにベリファイアピンも含めるようにしてください。

于 2010-11-10T20:48:15.913 に答える