Próbuję uzyskać dostęp do Google Documents List API 3.0 za pomocą OAuth 2.0, ale mam pewne problemy z błędem 401.OAuth - Nieprawidłowy token: Żeton żądania używany, gdy jest niedozwolony
Po użytkownik zaakceptował mój kod jest następujący:
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);
Następnie, w ostatnim wierszu -getFeed() - rzuca wyjątek:
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>
Co się dzieje? Na statycznej głównej klasie testowej działa jak czar, ale kiedy uruchomię go na serwerze, ta linia już nie działa. Dowolny pomysł?
SOLVED
Token dostęp musi być pobrana w ten sposób, ze GoogleOAuthHelper, nie z GoogleOAuthParameters bezpośrednio:
String accessToken = oauthHelper.getAccessToken(oauthParameters);
można umieścić swoje rozwiązania w odpowiedzi i przyjąć, że odpowiedź na to pytanie? W ten sposób pytanie jest oznaczane jako rozwiązane i jeśli ktokolwiek znajdzie się w tym poście (z dowolnego powodu), odpowiedź będzie łatwa do znalezienia. –
Co to jest oauthHelper? –