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)
ローカルホストでは、すべてが正常に機能します。