Condividi tramite


Autenticazione con i servizi Google

Se lo script usa servizi Google, ad esempio Google Drive, Fogli e Posta elettronica, è necessario ottenere le credenziali. Sono disponibili alcune opzioni per ottenere le credenziali:

  • Opzione 1 : facile da seguire e richiede meno tempo, ma è necessario ripeterla ogni ora alla scadenza del token di accesso.
  • Opzione 2 : un po' più complicato, ma è necessario ripeterlo solo se il token di aggiornamento diventa non valido.
  • Opzione 3 : anche un po 'più complicato (usa lo script di PowerShell fornito), ma è necessario ripeterlo solo se il token di aggiornamento diventa non valido.

Opzione 1- Ottenere un token di accesso dal playground di Google OAuth

  1. Vai al parco giochi di Google OAuth
  2. In Input your own scopes (Immettere gli ambiti personalizzati) incollare https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  3. Fare clic su Autorizza API
  4. Dopo aver autorizzato le API, fare clic su Codice di autorizzazione di Exchange per i token
  5. Copiare il valore del access_token dalla risposta
  6. In soluzioni come Individuazione di annunci non approvati, che accedono ai servizi Google, impostare il campo dell'oggetto accessToken credenziali sul token di accesso copiato nel passaggio 5.

Nota

Poiché il token di accesso scade tra 1 ora, è necessario ripetere questi passaggi ogni ora.

Opzione 2- Ottenere un token di aggiornamento dal parco giochi di Google OAuth

  1. Passare al dashboard dell'API della console per sviluppatori google
  2. Fare clic su Crea un progetto per creare un nuovo progetto o selezionare un progetto esistente
    1. Se si crea un nuovo progetto, immettere il nome del progetto in Nome progetto. Ad esempio, Script.
    2. Fare clic su Crea
  3. Nel dashboard fare clic su ABILITA API E SERVIZI
  4. Nella casella di ricerca immettere i fogli e fare clic su API Fogli Google. Fare quindi clic su ABILITA
  5. Tornare al dashboard (fare clic su API & Services) e ripetere i passaggi 3 e 4 per l'API Google Drive
  6. Tornare al dashboard (fare clic su API & Servizi) e ripetere i passaggi 3 e 4 per l'API Gmail
  7. Nel dashboard fare clic su Credenziali nel riquadro di spostamento a sinistra e quindi fare clic su CONFIGURA SCHERMATA DI CONSENSO. Se viene chiesto di selezionare un tipo di utente, selezionare Esterno e quindi fare clic su Crea
  8. Immettere il nome dell'applicazione nel campo Nome applicazione (ad esempio, Client script) e immettere il messaggio di posta elettronica nei campi che lo chiedono, quindi fare clic su SALVA E CONTINUA
  9. Fare clic su ADD OR REMOVE SCOPES (AGGIUNGI O RIMUOVI AMBITI) e selezionare .. /auth/drive e .. /auth/gmail.send e quindi fare clic su Aggiorna
  10. Fare clic su SALVA E CONTINUA
  11. Fare clic su AGGIUNGI UTENTI, immettere l'e-mail di Google e fare clic su AGGIUNGI
  12. Nel dashboard fare clic su Credenziali nel riquadro di spostamento sinistro, quindi fare clic su Crea credenziali e selezionare ID client Oauth
  13. Selezionare Tipo di applicazione Web . Immettere quindi un nome, ad esempio App Web Script , nel campo Nome . https://developers.google.com/oauthplayground Aggiungere quindi agli URI di reindirizzamento autorizzati. Infine, fare clic su Crea
  14. Copiare l'ID client e il segreto client da usare nei passaggi 18, 19 e 24 e quindi fare clic su OK
  15. Vai al parco giochi di Google OAuth
  16. Fare clic sull'icona configurazione di OAuth 2.0 (simile a un ingranaggio nell'angolo in alto a destra)
  17. Selezionare la casella Usa credenziali OAuth personalizzate
  18. Incollare l'ID client nell'ID client OAuth
  19. Incollare il segreto client nel segreto client OAuth
  20. In Input your own scopes (Immettere gli ambiti personalizzati) incollare https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  21. Fare clic su Autorizza API e seguire le istruzioni per fornire il consenso

Nota

Quando si autorizzano le API nel playground, se viene visualizzata una finestra di dialogo che indica che "Questa app non è verificata", fare clic su Avanzate e quindi passare a [nome app] (unsafe). 22. Dopo l'autorizzazione delle API, fare clic su Codice di autorizzazione di Exchange per i token 23. Copiare il token dal token di aggiornamento da usare nel passaggio 24 24. In soluzioni come Individuazione di annunci non approvati, che accedono ai servizi Google, impostare i campi , clientSecrete refreshToken dell'oggetto clientIdcredenziali sui valori ricevuti nei passaggi 13 e 22.

Opzione 3: recupero di un token di aggiornamento tramite uno script di PowerShell

  1. Passare al dashboard dell'API della console per sviluppatori google
  2. Fare clic su Crea un progetto per creare un nuovo progetto o selezionare un progetto esistente
    1. Se si crea un nuovo progetto, immettere il nome del progetto in Nome progetto. Ad esempio, Script.
    2. Fare clic su Crea
  3. Nel dashboard fare clic su ABILITA API E SERVIZI
  4. Nella casella di ricerca immettere i fogli e fare clic su API Fogli Google. Fare quindi clic su ABILITA
  5. Tornare al dashboard (fare clic su API & Services) e ripetere i passaggi 3 e 4 per l'API Google Drive
  6. Tornare al dashboard (fare clic su API & Servizi) e ripetere i passaggi 3 e 4 per l'API Gmail
  7. Nel dashboard fare clic su Credenziali nel riquadro di spostamento a sinistra e quindi fare clic su CONFIGURA SCHERMATA DI CONSENSO. Se viene chiesto di selezionare un tipo di utente, selezionare Esterno e quindi fare clic su Crea
  8. Immettere il nome dell'applicazione nel campo Nome applicazione (ad esempio, Client script) e immettere il messaggio di posta elettronica nei campi che lo chiedono, quindi fare clic su SALVA E CONTINUA
  9. Fare clic su ADD OR REMOVE SCOPES (AGGIUNGI O RIMUOVI AMBITI) e selezionare .. /auth/drive e .. /auth/gmail.send e quindi fare clic su Aggiorna
  10. Fare clic su SALVA E CONTINUA
  11. Fare clic su AGGIUNGI UTENTI, immettere l'e-mail di Google e fare clic su AGGIUNGI
  12. Nel dashboard fare clic su Credenziali nel riquadro di spostamento sinistro, quindi fare clic su Crea credenziali e selezionare ID client Oauth
  13. Selezionare Tipo di applicazione app desktop , immettere un nome (ad esempio, Script client creds) e fare clic su Crea
  14. Copiare l'ID client e il segreto client da usare nei passaggi 15 e 16 e quindi fare clic su OK
  15. Creare uno script di PowerShell per ottenere il consenso dell'utente e un token di aggiornamento.

Per ottenere un token di accesso è necessario il consenso dell'utente, a meno che non si disponga di un token di aggiornamento. Tuttavia, poiché script non supportano i componenti dell'interfaccia utente, dovrai ottenere il consenso in un altro modo. Questo PowerShell offre un'opzione per ottenere il consenso e un token di aggiornamento.

Aprire il Blocco note o l'editor preferito e copiare lo script di PowerShell nell'editor. Impostare $clientId e $clientSecret sull'ID client e sul segreto ricevuti durante la registrazione dell'app (vedere il passaggio 13).

$clientId = "your-client-id"
$clientSecret = "your-client-secret"

$scopes = "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/gmail.send"

Start-Process "https://accounts.google.com/o/oauth2/v2/auth?client_id=$clientId&scope=$([string]::Join("%20", $scopes))&access_type=offline&response_type=code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"    
 
$code = Read-Host "Please enter the code"
   
$response = Invoke-WebRequest https://www.googleapis.com/oauth2/v4/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientid&client_secret=$clientSecret&redirect_uri=urn:ietf:wg:oauth:2.0:oob&code=$code&grant_type=authorization_code"
  
Write-Output "Refresh token: " ($response.Content | ConvertFrom-Json).refresh_token 

Salvare il file e denominarlo GetTokens.ps1 (è possibile denominarlo come desiderato, ma l'estensione deve essere .ps1).

Aprire ora una finestra della console. Per aprire una finestra della console in Microsoft Windows, immettere il comando Esegui Windows seguente (<pulsante> Windows+r):

cmd.exe

Al prompt dei comandi passare alla cartella in cui è stato salvato GetTokens.ps1 e immettere il comando seguente:

powershell.exe -File .\GetTokens.ps1

Quando lo script di PowerShell viene eseguito correttamente, avvia una sessione del browser in cui immettere le credenziali di Google. Dopo il consenso, la pagina Web contiene il codice di concessione (vedere Copiare questo codice).After consenting, the webpage contains the grant code (vedere Please copy this code...).

Copiare il codice di concessione e immetterlo nella finestra della console al prompt. Lo script di PowerShell restituisce quindi un token di aggiornamento. Copiare il token di aggiornamento. È consigliabile considerare il token di aggiornamento come se si trattasse di una password; se qualcuno ne entra in possesso, ha accesso alle risorse.

  1. In soluzioni come Individuazione di annunci non approvati, che accedono ai servizi Google, impostare i campi , clientSecrete refreshToken dell'oggetto clientIdcredenziali sui valori ricevuti nei passaggi 13 e 14.