Come ottenere un refresh token per le Google API

Refresh token per le Google API

INDICE

Cerca nel sito

Cerca inserendo le parole chiave di tuo interesse. Puoi cercare tra centinaia di articoli e decine di pagine informative sul mondo web e blockchain.

In questo articolo vedremo come ottenere un refresh token per le Google API. Può essere molto utile utilizzare un refresh token per eseguire l’autenticazione sulla Google API, ad esempio da codice lato server (da cui non è possibile eseguire il normale flusso Oauth 2). Vedremo, quindi, nel dettaglio come ottenere un authorization code da browser e successivamente come scambiarlo per un refresh token usando Postman.

Cos’è l’authorization code e il refresh token?

  • Authorization Code: È un codice temporaneo fornito da Google dopo che un utente ha autorizzato l’accesso. Serve per ottenere l’access token e il refresh token.
  • Refresh Token: È un token persistente che consente di ottenere nuovi access token senza richiedere continuamente l’autorizzazione dell’utente.

Questi elementi sono fondamentali per accedere alle API di Google in modo sicuro e continuo.

Passo 1: Configurare il progetto su Google Cloud

Prima di iniziare, devi configurare il tuo progetto su Google Cloud:

  1. Accedi alla Google Cloud Console.
  2. Crea un nuovo progetto o selezionane uno esistente.
  3. Vai su API e Servizi > Libreria e abilita l’API che ti serve.
  4. Vai su API e Servizi > Credenziali:
    • Crea credenziali del tipo ID Client OAuth 2.0.
    • Imposta come Origini JavaScript autorizzate: http://localhost
    • Configura un URI di reindirizzamento autorizzati. Nel nostro caso inserisci https://oauth.pstmn.io/v1/callback che ci servirà poi per la chiamata con Postman.

Salva il tuo client_id e client_secret.

Passo 2: Generare l’authorization code da browser

Creare l’URL di autorizzazione

Per ottenere l’authorization code, devi costruire un URL di autorizzazione. Ecco il formato base:

https://accounts.google.com/o/oauth2/auth?response_type=code
&client_id=YOUR_CLIENT_ID
&redirect_uri=YOUR_REDIRECT_URI
&scope=YOUR_SCOPES
&access_type=offline
&prompt=consent

Parametri dell’URL

  • response_type=code: Specifica che vuoi un authorization code.
  • client_id: Il tuo client ID fornito da Google.
  • redirect_uri: Deve corrispondere esattamente al valore configurato nella Google Cloud Console.
  • scope: Gli ambiti richiesti, ad esempio https://www.googleapis.com/auth/gmail.readonly.
  • access_type=offline: Richiede anche un refresh token oltre all’access token.
  • prompt=consent: Forza la richiesta del consenso anche se l’utente ha già autorizzato l’app.

Esempio completo

Supponiamo di avere:

  • client_id: 1234567890.apps.googleusercontent.com
  • redirect_uri: https://oauth.pstmn.io/v1/callback
  • scope: https://www.googleapis.com/auth/gmail.readonly

L’URL sarà:

https://accounts.google.com/o/oauth2/auth?response_type=code
&client_id=1234567890.apps.googleusercontent.com
&redirect_uri=https://oauth.pstmn.io/v1/callback
&scope=https://www.googleapis.com/auth/gmail.readonly
&access_type=offline
&prompt=consent

Aprire l’URL nel browser

  1. Copia l’URL generato.
  2. Incollalo nel browser.
  3. Effettua l’accesso con il tuo account Google.
  4. Concedi i permessi richiesti dall’app.
  5. Verrai reindirizzato al tuo redirect_uri con un parametro code nella query string, ad esempio: https://oauth.pstmn.io/v1/callback?code=4/0AbCdefGhIjklMNOPQRSTUVWXYZ
  6. Copia il valore del parametro code (ad esempio 4/0AbCdefGhIjklMNOPQRSTUVWXYZ). Questo è il tuo authorization code.

Passo 3: Ottenere il refresh token con Postman

Ora che hai l’authorization code, puoi scambiarlo per ottenere un refresh token usando Postman.

Configurazione di Postman

  1. Crea una nuova richiesta:
    • Metodo: POST
    • URL: https://oauth2.googleapis.com/token
  2. Imposta gli Headers:
    • Content-Type: application/x-www-form-urlencoded
  3. Imposta il Body: Vai alla scheda Body, scegli il formato x-www-form-urlencoded e inserisci i seguenti parametri: Chiave Valore code YOUR_AUTHORIZATION_CODE client_id YOUR_CLIENT_ID client_secret YOUR_CLIENT_SECRET redirect_uri YOUR_REDIRECT_URI grant_type authorization_code

Esempio completo del body

ChiaveValore
code4/0AbCdefGhIjklMNOPQRSTUVWXYZ
client_id1234567890.apps.googleusercontent.com
client_secretmy-client-secret
redirect_urihttps://oauth.pstmn.io/v1/callback
grant_typeauthorization_code

Invia la richiesta

  1. Premi Send in Postman.
  2. Se tutto è configurato correttamente, otterrai una risposta simile: { "access_token": "ya29.a0AfH6SM...", "expires_in": 3600, "refresh_token": "1//0gkPvK5...", "scope": "https://www.googleapis.com/auth/gmail.readonly", "token_type": "Bearer" }
  3. Copia e salva il valore del refresh_token. Questo token ti permetterà di ottenere nuovi access token senza dover richiedere nuovamente il consenso dell’utente.

Conclusione

In questo articolo abbiamo visto come:

  1. Ottenere un authorization code da browser.
  2. Usare Postman per scambiarlo con un refresh token.

Questo processo è utile per creare applicazioni sicure che interagiscono con le API di Google senza dover richiedere continuamente l’autenticazione dell’utente, ad esempio applicazioni lato server.

Se hai domande o desideri una consulenza dedicata, contattaci!

Servizi di sviluppo IT che forniamo sia ai clienti finali, sia alle altre aziende di sviluppo in subappalto in white label