Я пытаюсь обновить статус в твиттере, используя twitter4j.На localhost все работает нормально, но когда я пытаюсь сделать это на сервере, я получаю ошибку авторизации:
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» на localhost.Я думаю, что не должно иметь значения, где оно было сгенерировано, значения accessToken.getToken()
и accessToken.getTokenSecret()
не должны зависеть от того, на какой машине я их запускаю, они должны работать где угодно, верно?
Что означает это сообщение об ошибке?Я не понимаю часть "использованного nonce".
ОБНОВЛЕНИЕ
Хорошо, что-то где-то действительно запутано.Сейчас я пытаюсь сгенерировать токен доступа на сервере и даже не могу сгенерировать для меня 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)
На локальном хосте всеотлично работает.