Estoy intentando acceder a la API 3.0 de la lista de documentos de Google con OAuth 2.0, pero tengo algunos problemas con un error 401.OAuth - Token no válido: token de solicitud utilizado cuando no está permitido
Después usuarios han aceptado, mi código es el siguiente:
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);
Luego, en la última línea -getFeed() - inicia la excepción:
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>
¿Qué está pasando? En una clase de prueba principal estática funciona como un amuleto, pero cuando la ejecuto en el servidor, esta línea ya no funciona. ¿Alguna idea?
RESUELTO
El token de acceso tiene que ser recuperada de esta manera, con un GoogleOAuthHelper, no con los GoogleOAuthParameters directamente:
String accessToken = oauthHelper.getAccessToken(oauthParameters);
Podría poner su solución en una respuesta y aceptar esa respuesta? De esta manera, la pregunta se marca como resuelta y si alguien entra en esta publicación (por cualquier motivo) será fácil encontrar la respuesta. –
¿Qué es este oauthHelper? –