Я пытаюсь получить доступ к API-интерфейсам документов Google 3.0 с помощью OAuth 2.0, но у меня возникли проблемы с ошибкой 401.OAuth - Недопустимый токен: токен, используемый, когда он не разрешен
После пользователь принял мой код выглядит следующим образом:
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CLIENT_ID);
oauthParameters.setOAuthConsumerSecret(CLIENT_SECRET);
oauthParameters.setOAuthToken(token);
oauthParameters.setOAuthTokenSecret(tokenSecret);
oauthParameters.setScope("https://docs.google.com/feeds/");
service = new DocsService("myapp");
service.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());
DocumentListFeed feed = service.getFeed(new URL("https://docs.google.com/feeds/default/private/full/?v=3"), DocumentListFeed.class);
Затем в последней строке -getFeed() - бросает исключение:
com.google.gdata.util.AuthenticationException: Token invalid - Invalid token: Request token used when not allowed.
<HTML>
<HEAD>
<TITLE>Token invalid - Invalid token: Request token used when not allowed.</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Token invalid - Invalid token: Request token used when not allowed.</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
Что происходит? На статическом основном тестовом классе работает как шарм, но когда я запускаю его на сервере, эта строка больше не работает. Есть идеи?
решаемые
Маркер доступа должен быть получен таким образом, с GoogleOAuthHelper, а не с GoogleOAuthParameters непосредственно:
String accessToken = oauthHelper.getAccessToken(oauthParameters);
Не могли бы вы поставить решение в ответ и принять этот ответ? Таким образом, вопрос отмечен как решенный, и если кто-нибудь попадет на этот пост (по любой причине), ответ будет легко найти. –
Что это oauthHelper? –