5

Sto lavorando con google analytics api in Java. Ho un codice che recupera il token di accesso dal token di aggiornamento. Archiviamo il token di aggiornamento nel database e, durante la richiesta, recuperiamo il token di accesso.Google Analytics: Ottieni token di accesso dal token di aggiornamento

Dopo la modifica della password, il nostro token di richiesta non è più valido. Così, ho generato un nuovo refreshtoken sfogliando l'url (https://developers.google.com/oauthplayground) e seguendo le istruzioni. Ho ottenuto il nuovo token di aggiornamento. Ora, quando eseguo il codice per recuperare il token di accesso, genera un'eccezione di puntatore nullo. Di seguito è riportato il codice:

RefreshTokenRequest request = new GoogleRefreshTokenRequest(HTTP_TRANSPORT, JSON_FACTORY, refreshToken, 
        this.clientId, this.clientSecret); 
      TokenResponse response = request.execute(); 

Quando eseguiamo metodo viene richiamato, viene generata la seguente eccezione:

java.lang.NullPointerException 
    at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191) 
    at com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127) 
    at com.google.api.client.json.jackson2.JacksonFactory.createJsonParser(JacksonFactory.java:96) 
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:85) 
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81) 
    at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:88) 
    at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287) 
    at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:125) 
    at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:75) 
    at GARTest.main(GARTest.java:22) 

Qualcuno può indicare dove sto sbagliando? Sono in grado di ottenere il token di accesso dall'interfaccia utente google oAuth.

+0

Ho paura che sia un problema aperto per la libreria java di GoogleApi: https://github.com/google/google-api-java-client/issues/932 per favore, condividi se hai qualche soluzione. – Artem

+0

Non dovresti usare Oauthplayground per ottenere un RefreshToken, questo dovrebbe far parte del tuo codice. Anche la modifica della password non avrà effetto su Oauth2 RefreshToken che rappresenta l'intero punto di OAuth. – DaImTo

risposta

2

questo può avere la risposta: https://github.com/googleads/googleads-java-lib/issues/19

utente Github jyothi462 dice che il suo NPE infine è stato causato utilizzando l'ID cliente sbagliato e segreto. Questo era anche il problema nel mio caso.

Questo problema è stato risolto con un aggiornamento del messaggio di errore, rendendolo più descrittivo.

+0

La traccia dello stack di riferimento è molto diversa da quella della descrizione. Il più vicino è: https://github.com/google/google-api-java-client/issues/932 – Artem

Problemi correlati