Selbst die erfahrensten Entwickler schreiben Code selten beim ersten Versuch richtig. Daher ist die Fehlerbehebung ein wichtiger Teil des Entwicklungsprozesses. In diesem Abschnitt werden einige Methoden beschrieben, mit denen Sie Fehler in Ihren Scripts finden, nachvollziehen und beheben können.
Fehlermeldungen
Wenn in Ihrem Script ein Fehler auftritt, wird eine Fehlermeldung angezeigt. Die Meldung enthält eine Zeilennummer, die für die Fehlerbehebung verwendet wird. Es gibt zwei grundlegende Arten von Fehlern, die auf diese Weise angezeigt werden: Syntaxfehler und Laufzeitfehler.
Syntaxfehler
Syntaxfehler entstehen durch Code, der nicht der JavaScript-Grammatik entspricht. Sie werden erkannt, sobald Sie versuchen, das Script zu speichern. Das folgende Code-Snippet enthält beispielsweise einen Syntaxfehler:
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);
}
Das Syntaxproblem hier ist ein fehlendes )
-Zeichen am Ende der vierten Zeile. Wenn Sie versuchen, das Script zu speichern, wird der folgende Fehler angezeigt:
Nach der Argumentliste fehlt ein ). (Zeile 4)
Diese Art von Fehlern lässt sich in der Regel leicht beheben, da sie sofort erkannt werden und in der Regel einfache Ursachen haben. Sie können keine Datei speichern, die Syntaxfehler enthält. Das bedeutet, dass nur gültiger Code in Ihrem Projekt gespeichert wird.
Laufzeitfehler
Diese Fehler werden durch die falsche Verwendung einer Funktion oder Klasse verursacht und können erst nach dem Ausführen des Scripts erkannt werden. Der folgende Code führt beispielsweise zu einem Laufzeitfehler:
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);
}
Der Code ist richtig formatiert, aber wir übergeben beim Aufruf von MailApp.sendEmail
den Wert „max“ für die E-Mail-Adresse. Da dies keine gültige E-Mail-Adresse ist, wird beim Ausführen des Scripts der folgende Fehler ausgegeben:
Ungültige E-Mail-Adresse: max (Zeile 5)
Die Fehlerbehebung ist bei diesen Fehlern schwieriger, da die Daten, die Sie an eine Funktion übergeben, häufig nicht im Code geschrieben, sondern aus einer Tabelle, einem Formular oder einer anderen externen Datenquelle abgerufen werden. Mit den folgenden Techniken zur Fehlerbehebung können Sie die Ursache dieser Fehler ermitteln.
Häufige Fehler
Im Folgenden finden Sie eine Liste häufiger Fehler und deren Ursachen.
Dienst zu oft aufgerufen: <action name>
Dieser Fehler gibt an, dass Sie Ihr tägliches Kontingent für eine bestimmte Aktion überschritten haben. Dieser Fehler kann beispielsweise auftreten, wenn Sie an einem Tag zu viele E-Mails senden. Die Kontingente sind für Privatnutzer-, Domain- und Premier-Konten unterschiedlich festgelegt und können jederzeit ohne vorherige Ankündigung von Google geändert werden. Die Kontingente für verschiedene Aktionen finden Sie in der Dokumentation zu Apps Script-Kontingenten.
Server nicht verfügbar oder Serverfehler, bitte noch einmal versuchen
Für diese Fehler gibt es mehrere mögliche Ursachen:
- Ein Google-Server oder -System ist vorübergehend nicht verfügbar. Warten Sie einige Minuten und versuchen Sie es dann noch einmal.
- In Ihrem Script ist ein Fehler enthalten, für den es keine entsprechende Fehlermeldung gibt. Versuchen Sie, Ihr Script zu debuggen, und prüfen Sie, ob Sie das Problem eingrenzen können.
- Dieser Fehler wird durch einen Programmfehler in Google Apps Script verursacht. Eine Anleitung zum Suchen und Einreichen von Fehlerberichten findest du unter Fehler. Bevor Sie einen neuen Fehler melden, sehen Sie nach, ob er schon gemeldet wurde.
Für die Ausführung dieser Aktion ist eine Autorisierung erforderlich.
Dieser Fehler weist darauf hin, dass dem Script die zum Ausführen erforderliche Autorisierung fehlt. Wenn ein Script im Script-Editor oder über einen benutzerdefinierten Menüpunkt ausgeführt wird, wird dem Nutzer ein Autorisierungsdialogfeld angezeigt. Wenn ein Script jedoch über einen Trigger ausgeführt, in eine Google Sites-Seite eingebettet oder als Dienst ausgeführt wird, kann der Dialog nicht angezeigt werden und dieser Fehler wird angezeigt.
Öffnen Sie den Script-Editor und führen Sie eine beliebige Funktion aus, um das Script zu autorisieren. Die Autorisierungsaufforderung wird angezeigt, damit Sie das Scriptprojekt autorisieren können. Wenn das Script neue nicht autorisierte Dienste enthält, müssen Sie es noch einmal autorisieren.
Dieser Fehler wird häufig durch Trigger verursacht, die ausgelöst werden, bevor der Nutzer sie autorisiert hat. Wenn Sie keinen Zugriff auf das Scriptprojekt haben (z. B. weil der Fehler bei einem von Ihnen verwendeten Add-on auftritt), können Sie das Script in der Regel autorisieren, indem Sie das Add-on noch einmal verwenden. Wenn ein Trigger weiterhin ausgelöst wird und diesen Fehler verursacht, können Sie ihn entfernen. Gehen Sie dazu so vor:
- Klicken Sie links im Apps Script-Projekt auf Trigger .
- Klicken Sie rechts neben dem Trigger, den Sie entfernen möchten, auf das Dreipunkt-Menü > Trigger löschen.
Sie können problematische Add-on-Trigger auch entfernen, indem Sie das Add-on deinstallieren.
Zugriff verweigert: DriveApp oder Drive-Apps von Drittanbietern wurden durch die Domainrichtlinie deaktiviert
Administratoren von Google Workspace -Domains können die Drive API für ihre Domain deaktivieren. Dadurch können Nutzer keine Google Drive-Apps mehr installieren und verwenden. Außerdem können Nutzer mit dieser Einstellung keine Apps Script-Add-ons verwenden, die den Drive-Dienst oder den erweiterten Drive-Dienst nutzen, auch wenn das Script vor der Deaktivierung der Drive API autorisiert wurde.
Wenn ein Add-on oder eine Webanwendung, die den Drive-Dienst verwendet, jedoch für die domainweite Installation veröffentlicht und vom Administrator für einige oder alle Nutzer in der Domain installiert wird, funktioniert das Script für diese Nutzer auch dann, wenn die Drive API in der Domain deaktiviert ist.
Das Script hat keine Berechtigung, die Identität des aktiven Nutzers abzurufen.
Gibt an, dass die Identität und E-Mail-Adresse des aktiven Nutzers für das Script nicht verfügbar sind. Diese Warnung ist auf einen Aufruf von Session.getActiveUser()
zurückzuführen.
Das kann auch durch einen Aufruf von Session.getEffectiveUser()
geschehen, wenn das Script in einem anderen Autorisierungsmodus als AuthMode.FULL
ausgeführt wird.
Wenn diese Warnung ausgegeben wird, geben nachfolgende Aufrufe von User.getEmail()
nur „"" zurück.
Je nach Autorisierungsmodus, in dem das Script ausgeführt wird, gibt es verschiedene Möglichkeiten, diese Warnung zu beheben. Der Autorisierungsmodus wird in ausgelösten Funktionen als authMode
-Attribut des e
-Ereignisparameters übergeben.
- Verwenden Sie in
AuthMode.FULL
stattdessenSession.getEffectiveUser()
. - Prüfen Sie unter
AuthMode.LIMITED
, ob der Eigentümer das Script autorisiert hat. - Rufen Sie in anderen Autorisierungsmodi keine der beiden Methoden auf.
- Wenn Sie Google Workspace Kunde sind und diese Warnung zum ersten Mal von einem installierbaren Trigger erhalten, prüfen Sie, ob der Trigger als Nutzer in Ihrer Organisation ausgeführt wird.
Bibliothek fehlt
Wenn Sie Ihrem Script eine gängige Bibliothek hinzufügen, erhalten Sie möglicherweise die Fehlermeldung, dass sie fehlt, obwohl sie als Abhängigkeit für Ihr Script aufgeführt ist. Möglicherweise greifen zu viele Nutzer gleichzeitig auf die Bibliothek zu. Versuchen Sie Folgendes, um diesen Fehler zu vermeiden:
- Kopieren Sie den Code der Bibliothek und fügen Sie ihn in Ihr Script ein. Entfernen Sie dann die Bibliotheksabhängigkeit.
- Kopieren Sie das Bibliotheksskript und stellen Sie es aus Ihrem Konto als Bibliothek bereit. Aktualisieren Sie die Abhängigkeit in Ihrem ursprünglichen Script auf die neue Bibliothek anstelle der öffentlichen.
Aufgrund einer fehlenden Bibliotheks- oder Bereitstellungsversion ist ein Fehler aufgetreten. Fehlercode „Not_Found“
Diese Fehlermeldung weist auf eines der folgenden Probleme hin:
- Die bereitgestellte Version des Scripts wurde gelöscht. Informationen zum Aktualisieren der bereitgestellten Version Ihres Scripts finden Sie unter Versionierte Bereitstellung bearbeiten.
- Die Version einer Bibliothek, die vom Script verwendet wird, wurde gelöscht. Wenn Sie prüfen möchten, welche Bibliothek fehlt, klicken Sie neben dem Namen der Bibliothek auf das Dreipunkt-Menü > In neuem Tab öffnen. Für die fehlende Bibliothek wird eine Fehlermeldung ausgegeben. Nachdem Sie die Bibliothek gefunden haben, die Sie aktualisieren möchten, können Sie eine der folgenden Aktionen ausführen:
- Aktualisieren Sie die Bibliothek, um eine andere Version zu verwenden. Weitere Informationen finden Sie unter Bibliothek aktualisieren.
- Entfernen Sie die gelöschte Bibliothek aus Ihrem Scriptprojekt und Code. Weitere Informationen finden Sie unter Mediathek entfernen.
Mehr
- Das Script einer Bibliothek, die Ihr Script verwendet, enthält eine andere Bibliothek, die eine gelöschte Version verwendet. Führen Sie einen der folgenden Schritte aus:
- Wenn Sie Bearbeitungszugriff auf die Bibliothek haben, die in Ihrem Script verwendet wird, aktualisieren Sie die sekundäre Bibliothek in diesem Script auf eine vorhandene Version.
- Aktualisieren Sie die Bibliothek, um eine andere Version zu verwenden. Weitere Informationen finden Sie unter Bibliothek aktualisieren.
- Entfernen Sie die Bibliothek aus Ihrem Scriptprojekt und Code. Weitere Informationen finden Sie unter Mediathek entfernen.
Fehler 400: invalid_scope beim Aufrufen der Google Chat API mit dem erweiterten Dienst
Wenn Sie Error 400: invalid_scope
mit der Fehlermeldung Some requested scopes cannot be shown
sehen, haben Sie in der Datei appsscript.json
des Apps Script-Projekts keine Autorisierungsbereiche angegeben. In den meisten Fällen wird in Apps Script automatisch ermittelt, welche Berechtigungsbereiche für ein Script erforderlich sind. Wenn Sie jedoch den erweiterten Chat-Dienst verwenden, müssen Sie die Berechtigungsbereiche, die Ihr Script verwendet, manuell zur Manifestdatei Ihres Apps Script-Projekts hinzufügen. Weitere Informationen finden Sie unter Ausdrückliche Bereiche festlegen.
Fügen Sie der Datei appsscript.json
des Apps Script-Projekts die entsprechenden Autorisierungsbereiche als Teil des Arrays oauthScopes
hinzu, um den Fehler zu beheben. Wenn Sie beispielsweise die Methode spaces.messages.create
aufrufen möchten, fügen Sie Folgendes hinzu:
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
URL-Abrufe an <URL> wurden vom Administrator nicht erlaubt.
Google Workspace-Administratoren können in der Admin-Konsole eine Zulassungsliste aktivieren, um festzulegen, auf welche externen Domains Sie über Apps Script zugreifen können.
Wenden Sie sich an Ihren Administrator, um den Fehler zu beheben. Er kann die URL der Zulassungsliste hinzufügen.
Debugging
Nicht alle Fehler führen zu einer Fehlermeldung. Möglicherweise liegt ein subtilerer Fehler vor, bei dem der Code zwar technisch korrekt ist und ausgeführt werden kann, die Ergebnisse aber nicht den Erwartungen entsprechen. Im Folgenden finden Sie einige Strategien, wie Sie mit solchen Situationen umgehen und ein Script untersuchen können, das nicht wie erwartet ausgeführt wird.
Logging
Bei der Fehlerbehebung ist es oft hilfreich, Informationen während der Ausführung eines Scriptprojekts zu erfassen. In Google Apps Script gibt es zwei Methoden zum Logging von Informationen: den Cloud Logging-Dienst und die einfacheren Logger- und Konsolendienste, die im Apps Script-Editor integriert sind.
Weitere Informationen finden Sie in der Anleitung zum Logging.
Error Reporting
Ausnahmen, die aufgrund von Laufzeitfehlern auftreten, werden automatisch über den Google Cloud-Fehlerberichtsdienst protokolliert. Mit diesem Dienst können Sie nach Ausnahmemeldungen suchen und diese filtern, die von Ihrem Scriptprojekt erstellt werden.
Informationen zum Zugriff auf Error Reporting finden Sie unter Cloud-Logs und Fehlerberichte in der Google Cloud Platform Console ansehen.
Ausführungen
Jedes Mal, wenn Sie ein Script ausführen, wird die Ausführung in Apps Script protokolliert, einschließlich der Cloud-Logs. Anhand dieser Einträge können Sie nachvollziehen, welche Aktionen Ihr Script ausgeführt hat.
Wenn Sie die Ausführungen Ihres Scripts im Apps Script-Projekt aufrufen möchten, klicken Sie links auf Ausführungen
.Apps Script-Dienststatus prüfen
Gelegentlich treten bei bestimmten Google Workspace-Diensten (z. B. Gmail oder Drive) vorübergehende Probleme auf, die zu Dienstausfällen führen können. In diesem Fall funktionieren Apps Script-Projekte, die mit diesen Diensten interagieren, möglicherweise nicht wie erwartet.
Im Google Workspace-Status-Dashboard können Sie prüfen, ob es eine Google Workspace-Dienstunterbrechung gibt. Wenn derzeit eine Störung auftritt, können Sie entweder warten, bis sie behoben ist, oder sich in der Google Workspace-Hilfe oder in der Dokumentation zu bekannten Problemen in Google Workspace weitere Informationen einholen.
Debugger und Haltestellen verwenden
Wenn Sie Probleme in Ihrem Script finden möchten, können Sie es im Debug-Modus ausführen. Wenn ein Script im Debug-Modus ausgeführt wird, wird es an einem Haltepunkt pausiert. Ein Haltepunkt ist eine Zeile in Ihrem Script, die Sie markiert haben, weil Sie vermuten, dass dort ein Problem vorliegt. Wenn ein Script pausiert wird, wird der Wert jeder Variablen zu diesem Zeitpunkt angezeigt. So können Sie die internen Abläufe eines Scripts prüfen, ohne viele Logging-Anweisungen hinzufügen zu müssen.
Haltepunkt hinzufügen
Wenn Sie einen Haltepunkt hinzufügen möchten, bewegen Sie den Mauszeiger auf die Zeilennummer der Zeile, der Sie den Haltepunkt hinzufügen möchten. Klicken Sie links neben der Zeilennummer auf den Kreis. Die folgende Abbildung zeigt ein Beispiel für einen Breakpoint, der einem Script hinzugefügt wurde:
Script im Debug-Modus ausführen
Wenn Sie das Script im Debug-Modus ausführen möchten, klicken Sie oben im Editor auf Debug.
Bevor das Script die Zeile mit dem Haltepunkt ausführt, wird es angehalten und eine Tabelle mit Informationen zur Fehlerbehebung angezeigt. In dieser Tabelle können Sie Daten wie die Werte von Parametern und die in Objekten gespeicherten Informationen prüfen.
Mit den Schaltflächen „Step in“, „Step over“ und „Step out“ oben im Debugger-Steuerfeld können Sie steuern, wie das Script ausgeführt wird. So können Sie das Script Zeile für Zeile ausführen und prüfen, wie sich die Werte im Zeitverlauf ändern.
Probleme mit mehreren Google-Konten
Wenn Sie gleichzeitig in mehreren Google-Konten angemeldet sind, haben Sie möglicherweise Probleme, auf Ihre Add-ons und Web-Apps zuzugreifen. Die Mehrfachanmeldung oder das gleichzeitige Angemeldetsein in mehreren Google-Konten wird für Apps Script, Add-ons und Web-Apps nicht unterstützt.
Wenn Sie den Apps Script-Editor öffnen, während Sie in mehreren Konten angemeldet sind, werden Sie von Google aufgefordert, das Konto auszuwählen, mit dem Sie fortfahren möchten.
Wenn Sie eine Webanwendung oder ein Add-on öffnen und Probleme mit mehreren Anmeldungen auftreten, versuchen Sie es mit einer der folgenden Lösungen:
- Melden Sie sich von allen Google-Konten ab und melden Sie sich nur in dem Konto an, das das Add-on oder die Web-App enthält, auf die Sie zugreifen möchten.
- Öffnen Sie ein Inkognitofenster in Google Chrome oder ein anderes Browserfenster zum privaten Surfen und melden Sie sich in dem Google-Konto an, in dem sich das Add-on oder die Web-App befindet, auf die Sie zugreifen möchten.
Hilfe erhalten
Mit den oben aufgeführten Tools und Techniken können Sie eine Vielzahl von Problemen beheben. Es kann jedoch vorkommen, dass Sie auf Probleme stoßen, die etwas mehr Hilfe erfordern. Auf unserer Supportseite finden Sie Informationen dazu, wo Sie Fragen stellen und Fehler melden können.