Authentification auprès des services Google

Si votre script utilise des services Google, tels que Google Drive, Sheets et Mail, vous devez obtenir des informations d’identification. Plusieurs options s’offrent à vous pour obtenir les informations d’identification :

  • Option 1 : facile à suivre et prend moins de temps, mais vous devez le répéter toutes les heures à l’expiration du jeton d’accès.
  • Option 2 : un peu plus compliquée, mais vous ne devez la répéter que si le jeton d’actualisation n’est plus valide.
  • Option 3 : également un peu plus compliquée (utilise le script PowerShell fourni), mais vous devez uniquement la répéter si le jeton d’actualisation n’est plus valide.

Option 1 : obtenir un jeton d’accès à partir du terrain de jeu Google OAuth

  1. Accéder au terrain de jeu Google OAuth
  2. Dans Entrer vos propres étendues, collez https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  3. Sélectionnez Autoriser les API
  4. Une fois les API autorisées, sélectionnez Code d’autorisation Exchange pour les jetons
  5. Copier la valeur du access_token à partir de la réponse
  6. Dans des solutions telles que Découvrir les publicités désapprouvables, qui accèdent aux services Google, définissez le champ de l’objet d’informations d’identification sur le jeton d’accès copié à l’étape accessToken 5.

Remarque

Étant donné que le jeton d’accès expire au bout d’une heure, vous devez répéter ces étapes toutes les heures.

Option 2 - Obtention d’un jeton d’actualisation à partir du terrain de jeu Google OAuth

  1. Accéder au tableau de bord d’API de la console de développement Google
  2. Sélectionnez Créer un projet pour créer un projet ou sélectionner un projet existant
    1. Si vous créez un projet, entrez le nom de votre projet dans Nom du projet. Par exemple, les scripts.
    2. Sélectionnez Créer.
  3. Dans Tableau de bord, sélectionnez ACTIVER LES API ET LES SERVICES
  4. Dans la zone de recherche, entrez feuilles et sélectionnez API Google Sheets. Ensuite, sélectionnez ACTIVER
  5. Retour au tableau de bord (sélectionner API & Services) et répéter les étapes 3 et 4 pour l’API Google Drive
  6. Retour au tableau de bord (sélectionnez API & Services) et répétez les étapes 3 et 4 pour l’API Gmail
  7. Dans Tableau de bord, sélectionnez Informations d’identification dans le volet de navigation gauche, puis sélectionnez CONFIGURER L’ÉCRAN DE CONSENTEMENT. Si vous êtes invité à sélectionner un type d’utilisateur, sélectionnez Externe, puis sélectionnez Créer
  8. Entrez le nom de votre application dans le champ Nom de l’application (par exemple, Scripts client) et entrez votre adresse e-mail dans les champs qui vous le demandent, puis sélectionnez ENREGISTRER ET CONTINUER
  9. Sélectionnez AJOUTER OU SUPPRIMER DES ÉTENDUES, sélectionnez .. /auth/drive et .. /auth/gmail.send, puis sélectionnez Mettre à jour
  10. Sélectionnez ENREGISTRER ET CONTINUER
  11. Sélectionnez AJOUTER DES UTILISATEURS, entrez votre adresse e-mail Google, puis sélectionnez AJOUTER
  12. Dans Tableau de bord, sélectionnez Informations d’identification dans le volet de navigation gauche, puis sélectionnez Créer des informations d’identification et sélectionnez ID client Oauth
  13. Sélectionnez Application web Type d’application. Ensuite, entrez un nom tel que Scripts Web App dans le champ Nom . Ensuite, ajoutez https://developers.google.com/oauthplayground aux URI de redirection autorisés. Enfin, sélectionnez Créer
  14. Copiez votre ID client et votre clé secrète client à utiliser aux étapes 18, 19 et 24, puis sélectionnez OK
  15. Accéder au terrain de jeu Google OAuth
  16. Sélectionnez l’icône de configuration OAuth 2.0 (ressemble à un engrenage dans le coin supérieur droit)
  17. Cochez la case Utiliser vos propres informations d’identification OAuth
  18. Coller votre ID client dans l’ID client OAuth
  19. Collez votre clé secrète client dans la clé secrète client OAuth
  20. Dans Entrer vos propres étendues, collez https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  21. Sélectionnez Autoriser les API et suivez les invites pour donner votre consentement

Remarque

Lors de l’autorisation des API dans le playground, si vous voyez une boîte de dialogue indiquant « Cette application n’est pas vérifiée », sélectionnez Avancé, puis Aller à [nom de l’application] (non sécurisé).

  1. Une fois les API autorisées, sélectionnez Code d’autorisation Exchange pour les jetons
  2. Copiez le jeton du jeton d’actualisation à utiliser à l’étape 24
  3. Dans des solutions telles que Découvrir les publicités désapprouvables, qui accèdent aux services Google, définissez les objets d’informations d’identification clientIdclientSecretet refreshToken les champs sur les valeurs que vous avez reçues aux étapes 13 et 22.

Option 3 - Obtention d’un jeton d’actualisation à l’aide d’un script PowerShell

  1. Accéder au tableau de bord d’API de la console de développement Google
  2. Sélectionnez Créer un projet pour créer un projet ou sélectionner un projet existant
    1. Si vous créez un projet, entrez le nom de votre projet dans Nom du projet. Par exemple, les scripts.
    2. Sélectionnez Créer.
  3. Dans Tableau de bord, sélectionnez ACTIVER LES API ET LES SERVICES
  4. Dans la zone de recherche, entrez feuilles et sélectionnez API Google Sheets. Ensuite, sélectionnez ACTIVER
  5. Retour au tableau de bord (sélectionner API & Services) et répéter les étapes 3 et 4 pour l’API Google Drive
  6. Retour au tableau de bord (sélectionnez API & Services) et répétez les étapes 3 et 4 pour l’API Gmail
  7. Dans Tableau de bord, sélectionnez Informations d’identification dans le volet de navigation gauche, puis sélectionnez CONFIGURER L’ÉCRAN DE CONSENTEMENT. Si vous êtes invité à sélectionner un type d’utilisateur, sélectionnez Externe, puis sélectionnez Créer
  8. Entrez le nom de votre application dans le champ Nom de l’application (par exemple, Scripts client) et entrez votre adresse e-mail dans les champs qui vous le demandent, puis sélectionnez ENREGISTRER ET CONTINUER
  9. Sélectionnez AJOUTER OU SUPPRIMER DES ÉTENDUES, sélectionnez .. /auth/drive et .. /auth/gmail.send, puis sélectionnez Mettre à jour
  10. Sélectionnez ENREGISTRER ET CONTINUER
  11. Sélectionnez AJOUTER DES UTILISATEURS, entrez votre adresse e-mail Google, puis sélectionnez AJOUTER
  12. Dans Tableau de bord, sélectionnez Informations d’identification dans le volet de navigation gauche, puis sélectionnez Créer des informations d’identification et sélectionnez ID client Oauth
  13. Sélectionnez le type d’application de bureau , entrez un nom (par exemple, les informations d’identification du client Scripts), puis sélectionnez Créer
  14. Copiez votre ID client et votre clé secrète client à utiliser aux étapes 15 et 16, puis sélectionnez OK
  15. Créez un script PowerShell pour obtenir le consentement de l’utilisateur et un jeton d’actualisation.

L’obtention d’un jeton d’accès nécessite le consentement de l’utilisateur, sauf si vous disposez d’un jeton d’actualisation. Toutefois, comme les scripts ne prennent pas en charge les composants d’interface utilisateur, vous devrez obtenir le consentement d’une autre manière. Ce PowerShell fournit une option pour obtenir le consentement et un jeton d’actualisation.

Ouvrez le Bloc-notes ou votre éditeur favori et copiez le script PowerShell dans l’éditeur. Définissez $clientId et $clientSecret sur l’ID client et le secret que vous avez reçus lors de l’inscription de votre application (voir l’étape 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 

Enregistrez le fichier et nommez-le GetTokens.ps1 (vous pouvez le nommer comme vous le souhaitez, mais l’extension doit être .ps1).

Ouvrez maintenant une fenêtre de console. Pour ouvrir une fenêtre de console sous Microsoft Windows, entrez la commande Windows Run suivante (<bouton> Windows + R) :

cmd.exe

À l’invite de commandes, accédez au dossier dans lequel vous avez enregistré GetTokens.ps1 et entrez la commande suivante :

powershell.exe -File .\GetTokens.ps1

Lorsque le script PowerShell s’exécute avec succès, il démarre une session de navigateur dans laquelle vous entrez vos informations d’identification Google. Après le consentement, la page web contient le code d’octroi (voir Veuillez copier ce code...).

Copiez le code d’octroi et entrez-le dans la fenêtre de console à l’invite. Le script PowerShell renvoie ensuite un jeton d’actualisation. Copiez le jeton d’actualisation. Vous devez traiter le jeton d’actualisation comme vous le feriez avec un mot de passe ; Si quelqu’un s’en empare, il a accès à vos ressources.

  1. Dans des solutions telles que Découvrir les publicités désapprouvables, qui accèdent aux services Google, définissez les objets d’informations d’identification clientIdclientSecretet refreshToken les champs sur les valeurs que vous avez reçues aux étapes 13 et 14.