Autorisation pour les services 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 aux 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 champ d'application : en fonction de l'analyse, Apps Script identifie un ensemble de scopes 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 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) varie 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…
Autonome, module complémentaire ou lié à Docs, Sheets, Slides ou 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 ayant créé le déclencheur

Accorder des droits d'accès

Apps Script détermine automatiquement les niveaux d'autorisation (comme l'accès à vos fichiers Google 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, l'une des boîtes de dialogue d'autorisation affichées ici s'affichera lorsqu'il sera exécuté.

Les scripts que vous avez déjà autorisés demandent également une autorisation supplémentaire si une modification du code ajoute de nouveaux services. Les scripts ne peuvent pas demander d'autorisation si vous y accédez en tant qu'application Web s'exécutant 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 page des autorisations de votre compte Google. (Pour accéder à cette page à l'avenir, accédez à Google.com, puis cliquez sur la photo de votre compte en haut à droite de l'écran. Cliquez ensuite sur Mon compte, puis sur Applications et sites associés dans la section "Connexion et sécurité", puis sur Gérer les applications.)
  2. Cliquez sur le nom du script dont vous souhaitez révoquer l'autorisation, puis cliquez sur Supprimer à droite, puis sur OK dans la boîte de dialogue qui s'affiche.

Limiter le champ d'application au document actuel

Si vous créez un module complémentaire ou un autre script qui utilise les services Spreadsheet, Document, Slides ou 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 Google Sheets, Docs, Slides et Forms suivent généralement le même modèle d'autorisation que les scripts associés à un document. Toutefois, dans certaines circonstances, 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 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 que vous configurez dans vos paramètres Google Cloud Services. 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 automatiques ne déclenchent pas les invites de réauthentification. Votre application Apps Script ne vous demandera pas automatiquement de vous réauthentifier après la période que vous avez 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 champs d'application dans le fichier manifeste du projet (appsscript.json). Nous vous recommandons de le faire pour les scripts publiés afin de vous assurer que vous utilisez les autorisations minimales requises.

Pour obtenir des instructions, consultez 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 nécessitant 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 autorisations ne sont pas mises à jour : si vous avez modifié 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.
  • Avertissement "Cette application est bloquée" ou avertissement pour application non validée : ce message s'affiche si votre script utilise des niveaux d'accès sensibles ou restreints et n'a pas été validé par Google. Consultez Validation du client OAuth.