Autorisation pour les services Google

Google Apps Script nécessite l'autorisation de l'utilisateur pour accéder aux données privées des services Google intégrés ou des services Google avancés.

Fonctionnement de l'autorisation pour les services Google

Lorsqu'un script nécessite d'accéder à des services Google, il suit le processus général suivant :

  1. Détection : Apps Script analyse le script pour identifier les services qu'il utilise (par exemple, SpreadsheetApp ou GmailApp).
  2. Détermination du niveau d'accès : en fonction de l'analyse, Apps Script identifie un ensemble de niveaux d'accès OAuth nécessaires à l'exécution du script.
  3. Vérification de l'autorisation : lorsque le script est exécuté, il vérifie si l'utilisateur a déjà autorisé ces niveaux d'accès.
  4. Invite de l'utilisateur : si l'autorisation est manquante, une boîte de dialogue s'affiche pour demander à l' utilisateur d'accorder l'autorisation.
  5. Exécution : une fois le script autorisé, il peut accéder aux données demandées pour cet utilisateur.

Autorisations et types de scripts

L'identité de l'utilisateur avec laquelle un script s'exécute, et donc les données auxquelles il peut accéder, varient en fonction du scénario dans lequel le script est exécuté, comme indiqué dans le tableau suivant.

Type de script Le script s'exécute en tant que…
Application autonome, module complémentaire Google Workspace ou associé à Google Docs, Google Sheets, Google Slides ou Google Forms Utilisateur au clavier
Fonction personnalisée dans une feuille de calcul Utilisateur anonyme. Toutefois, les limites de quota sont comptabilisées pour l'utilisateur au clavier.
Application Web ou gadget Google Sites Utilisateur au clavier ou propriétaire du script, selon les options sélectionnées lors du déploiement de l'application
Déclencheur installable Utilisateur qui a créé le déclencheur

Accorder des droits d'accès

Apps Script détermine automatiquement les niveaux d'accès (par exemple, l'accès à vos fichiers Sheets ou Gmail) en fonction d'une analyse du code. Le code mis en commentaire peut toujours générer une demande d'autorisation. Si un script nécessite une autorisation, une boîte de dialogue d'autorisation s'affiche lors de son exécution.

Les scripts que vous avez déjà autorisés demandent également une autorisation supplémentaire si une modification de code ajoute de nouveaux services. Les scripts peuvent ne pas demander d'autorisation si vous y accédez en tant qu'application Web qui s'exécute sous l'identité utilisateur du propriétaire du script.

Révoquer les droits d'accès

Pour révoquer l'accès d'un script à vos données, procédez comme suit :

  1. Accédez à la section "Sécurité" de votre compte Google .
  2. Sous Vos connexions à des applis et services tiers, cliquez sur Voir toutes les connexions.
  3. Sélectionnez le script ou l'application pour lesquels vous souhaitez révoquer l'accès.
  4. Cliquez sur Supprimer toutes les connexions avec APP_NAME, puis cliquez sur Confirmer.

Limiter le niveau d'accès au document actuel

Si vous créez un module complémentaire ou un autre script qui utilise le service Spreadsheet, le service Document, le service Slides ou le service Forms, vous pouvez forcer la boîte de dialogue d'autorisation à ne demander l'accès qu'aux fichiers dans lesquels le module complémentaire ou le script est utilisé, plutôt qu'à toutes les feuilles de calcul, tous les documents ou tous les formulaires d'un utilisateur. Pour ce faire, incluez l'annotation JSDoc suivante dans un commentaire au niveau du fichier :

/**
 * @OnlyCurrentDoc
 */

Une annotation opposée, @NotOnlyCurrentDoc, est disponible si votre script inclut une bibliothèque qui déclare @OnlyCurrentDoc, mais que le script principal nécessite en fait d'accéder à plus que le fichier actuel.

Cycle de vie de l'autorisation pour les modules complémentaires

Les modules complémentaires pour Sheets, Docs, Slides et Forms suivent généralement le même modèle d'autorisation que les scripts qui sont associés à un document. Dans certains cas, toutefois, leurs fonctions onOpen(e) et onEdit(e) s'exécutent en mode sans autorisation, ce qui présente quelques complications supplémentaires. Pour en savoir plus, consultez le guide sur le cycle de vie de l'autorisation des modules complémentaires.

Limites d'utilisateurs pour les applications OAuth

Les applications qui utilisent OAuth pour accéder aux données utilisateur Google, y compris les projets Apps Script, sont soumises à des limites d'autorisation. Pour en savoir plus, consultez la section Limites d'utilisateurs pour les applications OAuth.

Comportement de la réauthentification avec Apps Script

Apps Script n'applique pas la fréquence de réauthentification configurée dans les paramètres du service Google Cloud. En effet, Apps Script peut s'exécuter automatiquement à l'aide de déclencheurs, qui fonctionnent sans interaction directe de l'utilisateur. Ces exécutions automatisées ne déclenchent pas les invites de réauthentification. Votre application Apps Script ne vous demande pas automatiquement de vous réauthentifier après la période spécifiée (par exemple, 12 heures).

Définir des niveaux d'accès explicites dans le fichier manifeste

Apps Script détermine automatiquement les niveaux d'accès requis en analysant le code pour les appels de fonction. Si vous avez besoin de plus de contrôle, vous pouvez définir explicitement les niveaux d'accès dans le fichier manifeste du projet (appsscript.json). Cette approche est recommandée pour les scripts publiés afin de vous assurer que vous utilisez les autorisations minimales requises.

Pour obtenir des instructions, consultez la section Définir des niveaux d'accès explicites.

Dépannage

  • Erreur"Autorisation requise" lors de l'exécution d'un déclencheur : les déclencheurs doivent être autorisés par l'utilisateur qui les a créés. Si vous ajoutez du code qui nécessite de nouvelles autorisations, vous devez exécuter manuellement une fonction dans l'éditeur de script une fois pour déclencher la boîte de dialogue d'autorisation.
  • Les niveaux d'accès ne sont pas mis à jour : si vous avez mis à jour votre code, mais que la boîte de dialogue d'autorisation ne reflète pas les modifications, essayez d'enregistrer le projet et d'actualiser l'éditeur. Si vous utilisez des niveaux d'accès explicites dans le fichier manifeste, assurez-vous d'avoir ajouté le nouveau niveau d'accès au tableau oauthScopes.
  • "Cette application est bloquée" ou avertissement d'application non validée : cela se produit si votre script utilise des niveaux d'accès sensibles ou restreints et n'a pas été validé par Google. Consultez la section Validation du client OAuth.