come ottenere token di accesso utilizzando GData in java
-
27-10-2019 - |
Domanda
Sto sviluppando un'applicazione Java in cui mi sono l'attuazione OAuth 3 zampe con google GData in Java. Questa applicazione è iscritto su Google App Engine. Nella prima fase, sto ottenendo il non autorizzata di richiesta-token con successo. Sto memorizzazione di quella pedina in sessione e creare un collegamento mediante createUserAuthorizationUrl (oauthParameters). Poi, il clic sul link, mi reindirizzare a "Concedi accesso pagina".
Ora, anche se mi concedo l'accesso, non mostra me questa pagina . Ma, mi reindirizza alla mia richiamata URL. Tuttavia, questo sembra corretta. Ma, anche non aggiunge la voce sotto mio account . Ecco, io sono la memorizzazione dei oauth_token in sessione.
Quando si ottiene reindirizzato, l'URL di quella pagina contiene oauth_token & oauth_verifier, entrambi! Ora, in questo url richiamata, ho un tasto e azione insieme di per presentare a un accessTokenServlet.java. Il codice di questo servlet è la seguente:
Ora io mando richiesta per andare a prendere token di accesso. Il mio codice è:
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
oauthParameters.setOAuthType(OAuthParameters.OAuthType.THREE_LEGGED_OAUTH);
GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(new OAuthHmacSha1Signer());
oauthParameters.setOAuthToken(request.getSession().getAttribute("oauth_token").toString());
oauthParameters.setOAuthTokenSecret(request.getSession().getAttribute("oauth_token_secret").toString());
try {
String accessToken = oauthHelper.getAccessToken(oauthParameters);
out.println("Access Token : " + accessToken);
} catch (OAuthException e) {
//System.out.print("Response Status : " + response.getStatus());
out.println("Exception : ");
e.printStackTrace();
return;
}
Mentre cliccando sul pulsante di invio, esso stampa "token di accesso:" & nulla! Nessun ritorni gettone!
io sono sempre sbagliato in fase di autorizzare la richiesta di token stesso. Ma, io non sto ottenendo, quale problema ma ho generato?
Soluzione
La pagina con il verificatore si è collegato al dovrebbe accadere solo se si passa in un oauth_callback
di oob
- questo indica che sarà in movimento il verificatore out-of-band. Consiglio vivamente di non utilizzare oob
per qualsiasi cosa, ma il debug. Invece, si dovrebbe essere la creazione di un URL di richiamata e ottenere il verificatore dalla stringa di query.
Nel codice di cui sopra, non vedo nulla che imposta il verificatore nei parametri OAuth, in modo che è probabile che il vostro problema. Non stai facendo anche molto in termini di gestione degli errori, e questo è un pezzo molto importante del flusso OAuth - per esempio, una volta che ce l'hai di lavoro, tenta di annullare il processo OAuth e vedere come le vostre maniglie di applicazione è <. / p>
Si vedrà solo la voce nella tua lista di token rilasciato dopo aver completato il processo e ottenuto un token di accesso aggiornata.