2012-09-24 13 views
14

Sto cercando di ottenere un token di accesso per utilizzare Google Play per sviluppatori Android API, e ho ottenuto fino a questo punto usando the Google API Java Client documentation example:Come ottenere il token di accesso da GoogleCredential?

HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); 
JsonFactory JSON_FACTORY = new JacksonFactory(); 

GoogleCredential credential = new GoogleCredential.Builder() 
    .setTransport(HTTP_TRANSPORT) 
    .setJsonFactory(JSON_FACTORY) 
    .setServiceAccountId("...gserviceaccount.com") 
    .setServiceAccountScopes("https://www.googleapis.com/auth/androidpublisher") 
    .setServiceAccountPrivateKeyFromP12File(keyFile) 
    .build(); 

Ma come faccio a ottenere il token di accesso da questa credenziale? credential.getAccessToken() restituisce null. Sto facendo qualcosa di sbagliato o mi manca qualche passaggio?

+0

Controllare anche http://stackoverflow.com/a/24264696/165708 ulteriori passaggi che potrebbero essere necessari per far funzionare tutto. –

risposta

39

Capito. Devi chiamare credential.refreshToken() prima di credential.getAccessToken(). Non lo dice da nessuna parte nella documentazione, ma è quello che fa.

credential.refreshToken(); 
accessToken = credential.getAccessToken(); 
+3

Grazie mille @TheBeatlemaniac ti chiedi davvero perché questo non è scritto nella documentazione – jlezard

+1

Grazie. È molto strano che non ci sia nei documenti, ma è per questo che abbiamo così. :) – Nemanja

+0

Sì! Amico, mi hai salvato la giornata :) o/ Grazie @kalina! – Tuelho