Sto cercando di accedere a Google Documenti Lista API 3.0 con OAuth 2.0 ma sto avendo alcuni problemi con un errore 401.OAuth - non valido token: Richiesta segno usato quando non ammessi
Dopo utenti hanno accettato, il mio codice è il seguente:
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);
Poi, nell'ultima riga -getFeed() - genera l'eccezione:
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>
Cosa sta succedendo? Su una classe di test principale statica funziona come un incantesimo, ma quando lo eseguo sul server questa linea non funziona più. Qualche idea?
risolto
Il token di accesso ha bisogno di essere recuperati in questo modo, con un GoogleOAuthHelper, non con gli GoogleOAuthParameters direttamente:
String accessToken = oauthHelper.getAccessToken(oauthParameters);
Potrebbe mettere la soluzione in una risposta e accettare che la risposta? In questo modo la domanda è contrassegnata come risolta e se qualcuno ottiene su questo post (per qualsiasi motivo) la risposta sarà facile da trovare. –
Cos'è questo oauthHelper? –