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.
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
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