Dépannage

Même le développeur le plus expérimenté écrit rarement du code correctement lors de la première essayer, ce qui fait du dépannage une partie importante du processus de développement. Dans dans cette section, nous allons aborder des techniques qui peuvent vous aider à trouver, comprendre déboguer les erreurs dans vos scripts.

Messages d'erreur

Lorsque votre script rencontre une erreur, un message d'erreur s'affiche. Le message est accompagné d'un numéro de ligne utilisé pour le dépannage. Il existe deux concepts de base les types d'erreurs affichés de cette manière: erreurs de syntaxe et erreurs d'exécution.

Erreurs de syntaxe

Les erreurs de syntaxe sont causées par l'écriture de code qui ne suit pas le code JavaScript la grammaire et les erreurs sont détectées dès que vous essayez d'enregistrer le script. Par exemple, l'extrait de code suivant contient une erreur de syntaxe:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ";
  MailApp.sendEmail('john@example.com',
                    'Data in row ' + rowNumber,
                    rowData);
}

Ici, le problème de syntaxe est un caractère ) manquant à la fin du quatrième ligne. Si vous essayez d'enregistrer le script, l'erreur suivante s'affiche:

Signe ) manquant après la liste d'arguments. (ligne 4)

Les erreurs de ce type sont généralement faciles à résoudre, car on les trouve immédiatement et ont généralement des causes simples. Vous n'êtes pas en mesure d'enregistrer un contenant des erreurs de syntaxe, ce qui signifie que seul le code valide est enregistré dans votre projet.

Erreurs d'exécution

Ces erreurs sont causées par une utilisation incorrecte d'une fonction ou d'une classe, et ne peuvent être détecté une fois le script exécuté. Par exemple, le code suivant provoque une erreur d'exécution:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ");
  MailApp.sendEmail('john',
                    'Data in row ' + rowNumber,
                    rowData);
}

Le format du code est correct, mais la valeur "john" est transmise. pour le adresse e-mail lorsque vous appelez le MailApp.sendEmail. Comme il ne s'agit pas adresse e-mail valide. L'erreur suivante est générée lors de l'exécution du script:

Adresse e-mail incorrecte: jean (ligne 5)

Ce qui rend ces erreurs plus difficiles à résoudre, c'est que souvent, les données que vous transmettez à une fonction n'est pas écrite dans le code, à partir d'une feuille de calcul, d'un formulaire ou d'une autre source de données externe. Utiliser l'outil de débogage ci-dessous peuvent vous aider à identifier la cause de ces erreurs.

Erreurs fréquentes

Vous trouverez ci-dessous une liste des erreurs courantes et leurs causes.

Service invoqué à de trop nombreuses reprises : <nom de l'action>

Cette erreur indique que vous avez dépassé votre quota quotidien pour une action donnée. Par exemple, cette erreur peut se produire si vous envoyez trop d'e-mails dans un sur une journée. Les quotas sont définis à différents niveaux pour les clients, les domaines et sont susceptibles d'être modifiés à tout moment sans annoncée par Google. Vous pouvez afficher les limites de quota pour différentes actions dans la Documentation sur les quotas Apps Script

Serveur non disponible. ou Une erreur de serveur s'est produite. Veuillez réessayer.

Plusieurs causes peuvent être à l'origine de ces erreurs:

  • Un serveur ou un système Google est temporairement indisponible. Patientez quelques instants puis réessayez d'exécuter le script.
  • Votre script comporte une erreur qui n'est pas associée à une erreur . Essayez de déboguer votre script et voyez si vous pouvez isoler le problème.
  • Un bug dans Google Apps Script est à l'origine de cette erreur. Pour sur la recherche et l'envoi de rapports de bugs, consultez le Bugs. Avant de signaler un nouveau bug, recherchez pour voir si d'autres personnes l'ont déjà signalée.

Une autorisation est requise pour effectuer cette action.

Cette erreur indique que le script ne dispose pas des autorisations nécessaires pour s'exécuter. Lorsqu'un script est exécuté dans l'éditeur de scripts ou à partir d'un élément de menu personnalisé, qui s'affiche. Toutefois, lorsqu'un script est exécuté à partir d'un déclencheur, de l'intégrer à une page Google Sites ou de l'exécuter en tant que service, Impossible d'afficher la boîte de dialogue, et cette erreur s'affiche.

Pour autoriser le script, ouvrez l'éditeur de scripts et exécutez n'importe quelle fonction. La une invite d'autorisation s'affiche afin que vous puissiez autoriser le projet de script. Si le contient de nouveaux services non autorisés, vous devez autoriser à nouveau le script.

Cette erreur est souvent causée par déclencheurs qui se déclenchent avant que l'utilisateur les a autorisées. Si vous n'avez pas accès au projet de script (parce que l'erreur se produit pour un module complémentaire que vous par exemple), vous pouvez généralement autoriser le script en utilisant le module complémentaire à nouveau. Si un déclencheur continue de s'exécuter et provoque cette erreur, vous pouvez supprimer votre en procédant comme suit:

  1. Sur la gauche du projet Apps Script, cliquez sur Déclencheurs .
  2. À droite du déclencheur que vous souhaitez supprimer, cliquez sur Plus . &gt; Supprimer le déclencheur

Vous pouvez également supprimer les déclencheurs de modules complémentaires problématiques en désinstallez le module complémentaire.

Accès refusé: DriveApp ou Les règles du domaine ont désactivé les applications Drive tierces

Les administrateurs de Google Workspace domaines disposent du possibilité de désactiver l'API Drive pour leur domaine, ce qui empêche les utilisateurs installer et utiliser les applications Google Drive. Ce paramètre empêche également les utilisateurs des modules complémentaires Apps Script qui utilisent service Drive ou Service Drive avancé (même si le script a été autorisé avant que l'administrateur ne désactive l'API Drive).

Toutefois, si un module complémentaire ou une application Web utilisant le service Drive est publié pour installation au niveau du domaine et qu'il est installé par l'administrateur pour certains ou tous les utilisateurs du domaine, des fonctions de script pour ces utilisateurs, même si l'API Drive est désactivée dans le domaine.

Le script n'est pas autorisé à obtenir l'identité de l'utilisateur actif.

Indique que l'identité et l'adresse e-mail de l'utilisateur actif ne sont pas disponibles pour script. Cet avertissement résulte d'un appel à Session.getActiveUser() Elle peut également résulter d'un appel à Session.getEffectiveUser() si le script s'exécute dans un mode d'autorisation autre que AuthMode.FULL Si cet avertissement est signalé, les appels suivants à User.getEmail() ne renvoie que "".

Il existe plusieurs façons de résoudre cet avertissement, en fonction de votre le mode d'autorisation dans lequel le script s'exécute. Le mode d'autorisation exposées dans les fonctions déclenchées en tant que Propriété authMode de e paramètre d'événement.

  • Dans AuthMode.FULL, envisagez d'utiliser Session.getEffectiveUser() à la place.
  • Dans AuthMode.LIMITED, assurez-vous que que le propriétaire a autorisé le script.
  • Dans les autres modes d'autorisation, évitez d'appeler l'une ou l'autre de ces méthodes.
  • Si vous êtes un Google Workspace client que vous recevez cet avertissement déclencheur installable, assurez-vous que le déclencheur s'exécute en tant qu'utilisateur dans votre organisation.

Bibliothèque manquante

Si vous ajoutez une bibliothèque populaire à votre script, il se peut que vous receviez un message d'erreur indiquant qu'elle est manquante, même si la bibliothèque est répertoriée comme dépendance pour votre script. Cela peut être dû au fait que trop de personnes accèdent à la bibliothèque en même temps. Pour éviter cette erreur, essayez l'une des solutions suivantes:

  • Copiez le code de la bibliothèque et collez-la dans votre script, puis supprimez la bibliothèque la dépendance.
  • Copiez le script de la bibliothèque et déployez-le en tant que bibliothèque à partir de votre compte. Assurez-vous que pour mettre à jour la dépendance de votre script d'origine vers la nouvelle bibliothèque au lieu de la publique.

Une erreur s'est produite en raison d'une version de bibliothèque ou de déploiement manquante. Code d'erreur Not_Found

Ce message d'erreur indique l'une des situations suivantes:

  • La version déployée du script a été supprimée. Pour mettre à jour le déploiement de votre script, consultez la section Modifier une version déploiement.
  • La version d'une bibliothèque utilisée par le script a été supprimée. Pour savoir bibliothèque manquante, à côté de son nom, cliquez sur Plus &gt; Ouvrir dans un nouvel onglet. La bibliothèque manquante renvoie un message d'erreur. Une fois que vous avez trouvé la bibliothèque à mettre à jour, l'une des actions suivantes:
  • Le script d'une bibliothèque que votre script utilise comprend une autre bibliothèque qui utilise une version supprimée. Effectuez l'une des actions suivantes:
    • Si vous êtes autorisé à modifier la bibliothèque utilisée par votre script, mettez à jour la bibliothèque secondaire de ce script vers une version existante.
    • Mettez à jour la bibliothèque pour utiliser une autre version. Reportez-vous à la section Mettre à jour bibliothèque.
    • Supprimez la bibliothèque de votre projet de script et de votre code. Voir Supprimer une bibliothèque

Error 400: invalid_scope lorsque vous appelez l'API Google Chat avec le service avancé

Si Error 400: invalid_scope s'affiche avec le message d'erreur Some requested scopes cannot be shown cela signifie que vous n'avez spécifié aucun champ d'application d'autorisation Fichier appsscript.json du projet Apps Script. Dans la plupart des cas, Apps Script détermine automatiquement les champs d'application dont un script a besoin, mais lorsque vous utilisez le service avancé Chat, vous devez ajouter manuellement les champs d'application d'autorisation utilisés par votre script Fichier manifeste du projet Apps Script. Voir Définir des champs d'application explicites.

Pour résoudre l'erreur, ajoutez les niveaux d'autorisation appropriés au fichier appsscript.json du projet Apps Script dans le cadre de le tableau oauthScopes. Par exemple, pour appeler la méthode spaces.messages.create , ajoutez le code suivant:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Débogage

Toutes les erreurs n'entraînent pas l'affichage d'un message d'erreur. Il y a peut-être subtile erreur où le code est techniquement correct et peut s'exécuter, mais les résultats ne sont pas ce que vous attendiez. Voici quelques stratégies pour gérer situations et un examen plus approfondi d'un script qui ne s'exécute pas comme vous à vos attentes.

Journalisation

Lors du débogage, il est souvent utile d'enregistrer les informations sous la forme d'un projet de script s’exécute. Google Apps Script propose deux méthodes de consignation des informations : Service Cloud Logging et les services de base de l'enregistreur et de la console intégrés à l'éditeur Apps Script.

Pour en savoir plus, consultez le guide de journalisation.

Error Reporting

Les exceptions générées en raison d'erreurs d'exécution sont automatiquement enregistrées à l'aide du service Google Cloud Error Reporting. Ce service vous permet rechercher et filtrer les messages d'exception créés par votre projet de script.

Pour accéder à Error Reporting, consultez Afficher les journaux Cloud et les rapports d'erreurs dans le console Google Cloud Platform.

Exécutions

Chaque fois que vous exécutez un script, Apps Script enregistre l'exécution, y compris les journaux Cloud. Ces enregistrements peuvent vous aider à identifier les actions effectuées par votre script.

Pour afficher les exécutions de votre script dans la section Projet Apps Script, cliquez sur Exécutions sur la gauche.

Vérifier l'état du service Apps Script

Bien que des services Google Workspace rares, parfois spécifiques (Gmail ou Drive, par exemple) rencontrer des problèmes temporaires qui peuvent entraîner des interruptions de service. Lorsque cette les projets Apps Script qui interagissent avec ces services risquent de ne pas fonctionner comme prévu.

Vous pouvez vérifier s'il existe un service Google Workspace d'une panne en consultant Google Workspace Status Dashboard. En cas d'indisponibilité, en cours, vous devez attendre que le problème soit résolu ou rechercher consultez la documentation Centre d'aide Google Workspace ou Problèmes connus dans Google Workspace dans la documentation Google Cloud.

Utiliser le débogueur et les points d'arrêt

Pour localiser les problèmes dans votre script, vous pouvez l'exécuter en mode débogage. Lors de l'exécution dans mode débogage, un script s'interrompt lorsqu'il atteint un point d'arrêt, c'est-à-dire une ligne mis en évidence dans votre script et qui, selon vous, peut avoir un problème. Lorsqu'un script met en pause l'affichage la valeur de chaque variable à ce moment précis, ce qui vous permet d'inspecter la le fonctionnement interne d’un script sans avoir à ajouter beaucoup d’instructions de journalisation.

Ajouter un point d'arrêt

Pour ajouter un point d'arrêt, pointez sur le numéro de la ligne à laquelle vous souhaitez ajouter le point d'arrêt. À gauche du numéro de ligne, cliquez sur le cercle. Ci-dessous une image montre un exemple de point d'arrêt ajouté à un script:

Ajouter un point d&#39;arrêt

Exécuter un script en mode débogage

Pour exécuter le script en mode débogage, cliquez sur Debug (Déboguer) en haut de l'éditeur.

Avant que le script n'exécute la ligne contenant le point d'arrêt, il se met en pause et affiche une d'informations de débogage. Vous pouvez utiliser ce tableau pour inspecter des données telles que les valeurs des paramètres et les informations stockées dans les objets.

Pour contrôler l'exécution du script, en haut du panneau "Debugger" (Débogueur), utiliser les méthodes "Entrer", "Passer" et "Sortir" . Celles-ci vous permettent d'exécuter écrire des scripts une ligne à la fois et inspecter l'évolution des valeurs au fil du temps.

Problèmes liés à l'utilisation de plusieurs comptes Google

Si vous êtes connecté à plusieurs comptes Google simultanément, vous pouvez ont du mal à accéder à vos modules complémentaires et applications Web. Connexion multicompte connecté à plusieurs comptes Google simultanément, n'est pas pris en charge pour Google Apps. Scripts, modules complémentaires ou applications Web.

  • Si vous ouvrez l'éditeur Apps Script alors que vous êtes connecté à plusieurs comptes, Invites Google de choisir le compte que vous souhaitez utiliser.

  • Si vous ouvrez une application Web ou un module complémentaire et que vous rencontrez des problèmes de connexion multicompte, essayez l'une des solutions suivantes : les solutions suivantes:

    • Déconnectez-vous de tous vos comptes Google et connectez-vous uniquement à celui ou l'application Web auquel vous souhaitez accéder.
    • Ouvrez une fenêtre de navigation privée dans Google Chrome ou une fenêtre de navigation privée équivalente. et connectez-vous au compte Google qui contient le module complémentaire ou l'application Web auxquels vous souhaitez accéder.

Obtenir de l'aide

La résolution d'un problème à l'aide des outils et techniques énumérés ci-dessus peut résoudre un de nombreux problèmes, mais il est possible que vous rencontriez d'autres problèmes qui nécessitent une aide supplémentaire à résoudre. Consultez notre page d'assistance pour pour savoir où poser des questions et signaler des bugs.