Rozwiązywanie problemów

Nawet najbardziej doświadczony deweloper rzadko zapisuje kod prawidłowo więc rozwiązywanie problemów jest ważną częścią procesu programowania. W w tej sekcji omówimy techniki, które pomogą Ci znajdować, interpretować i na debugowanie błędów w skryptach.

Komunikaty o błędach

Jeśli skrypt napotka błąd, wyświetli się komunikat o błędzie. Wiadomość wraz z numerem wiersza służącym do rozwiązywania problemów. Wyróżniamy 2 podstawowe wyświetlają się w ten sposób: błędy składni i błędy środowiska wykonawczego.

Błędy składniowe

Błędy składni są spowodowane przez pisanie kodu niezgodnego z JavaScriptem gramatyki, a błędy są wykrywane, gdy tylko spróbujesz zapisać skrypt. Na przykład ten fragment kodu zawiera błąd składni:

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);
}

W tym problemie ze składnią brakuje znaku ) na końcu czwartego argumentu . Gdy spróbujesz zapisać skrypt, pojawi się ten błąd:

Brak znaku ) za listą argumentów. (wiersz 4)

Tego typu błędy można zwykle łatwo naprawić, ponieważ można je wykryć od razu i zwykle mają proste przyczyny. Nie możesz zapisać który zawiera błędy składniowe, co oznacza, że w do swojego projektu.

Błędy w czasie wykonywania

Te błędy wynikają z nieprawidłowego użycia funkcji lub klasy. Te błędy mogą zostać wykryty po uruchomieniu skryptu. Na przykład ten kod powoduje błąd czasu działania:

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);
}

Kod jest poprawnie sformatowany, ale przekazujemy wartość „jan” dla adresu e-mail podczas rozmowy z firmą MailApp.sendEmail. Ponieważ to nie jest Prawidłowy adres e-mail powoduje zgłoszenie następującego błędu po uruchomieniu skryptu:

Nieprawidłowy e-mail: jan (wiersz 5)

To, co sprawia, że naprawianie tych błędów jest trudniejsze, polega na tym, przekazywane do funkcji nie są zapisane w kodzie, ale pobierane z arkusza kalkulacyjnego, formularza lub innego zewnętrznego źródła danych. Korzystanie z debugowania poniższe metody mogą pomóc w ustaleniu przyczyny tych błędów.

Typowe błędy

Poniżej znajduje się lista najczęstszych błędów i ich przyczyn.

Usługa została wywołana zbyt wiele razy: <action name>

Ten błąd oznacza, że dla danego działania przekroczono dzienny limit. Ten błąd może pojawić się na przykład wtedy, gdy wysyłasz zbyt wiele e-maili w jednej jednego dnia. Limity są ustalane na różnych poziomach dla konsumenta, domeny w wersji Premium i mogą ulec zmianie w dowolnym momencie, bez uprzedniego ogłoszone przez Google. Limity dotyczące różnych działań możesz przeglądać w Dokumentacja limitów Apps Script.

Serwer jest niedostępny lub Wystąpił błąd serwera, spróbuj ponownie.

Oto kilka możliwych przyczyn tych błędów:

  • Serwer lub system Google są tymczasowo niedostępne. Zaczekaj chwilę i spróbuj jeszcze raz uruchomić skrypt.
  • W skrypcie występuje błąd, który nie ma przypisanego błędu . Spróbuj debugować skrypt, aby zobaczyć, czy uda Ci się zdiagnozować problem.
  • Wystąpił błąd w Skryptach aplikacji Google, który powoduje ten błąd. Dla: instrukcji wyszukiwania i zgłaszania błędów można znaleźć w Błędy. Przed zgłoszeniem nowego błędu wyszukaj aby sprawdzić, czy ktoś już go zgłosił.

Do wykonania tej czynności wymagana jest autoryzacja.

Ten błąd oznacza, że skrypt nie ma autoryzacji wymaganej do uruchomienia. Po uruchomieniu skryptu w edytorze skryptów lub z poziomu niestandardowego elementu menu jest wyświetlane użytkownikowi. Jednak po uruchomieniu skryptu z reguły, osadzonej na stronie w Witrynach Google lub uruchamiania jako usługa, nie można wyświetlić tego okna i wyświetla się ten błąd.

Aby autoryzować skrypt, otwórz edytor skryptów i uruchom dowolną funkcję. pojawi się prośba o autoryzację projektu skryptu. Jeśli zawiera nowe nieautoryzowane usługi, musisz ponownie autoryzować skrypt.

Częstą przyczyną tego błędu są: reguły, które uruchamiają się przed tagiem autoryzował użytkownik. Jeśli nie masz dostępu do projektu skryptu (ponieważ błąd występuje w przypadku dodatku, na przykład), można zwykle autoryzować skrypt za pomocą dodatku ponownie. Jeśli reguła nadal się uruchamia i powoduje ten błąd, możesz usunąć wykonując te czynności:

  1. Po lewej stronie projektu Apps Script kliknij Aktywatory .
  2. Na prawo od reguły, którą chcesz usunąć, kliknij Więcej . &gt; Usuń aktywator.

Możesz też usunąć problematyczne reguły dodatków przez: odinstalowanie dodatku.

Odmowa dostępu: DriveApp lub zasada domeny wyłączyła aplikacje innych firm na Dysku

Administratorzy Google Workspace domen mają możliwość wyłączenia Drive API w swojej domenie, który uniemożliwia użytkownikom instalowanie aplikacji Dysku Google i korzystanie z nich. To ustawienie blokuje też użytkownikom żadnych dodatków Apps Script, które korzystają z usłudze Dysk lub Zaawansowana usługa Dysku (nawet jeśli skrypt został autoryzowany przed wyłączeniem interfejsu Drive API przez administratora).

Jeśli jednak dodatek lub aplikacja internetowa używająca usługi Dysk została opublikowana w domenie instalację w całej domenie i jest instalowany przez administratora dla niektórych lub wszystkich użytkowników w domenie, dla tych użytkowników, nawet jeśli interfejs Drive API jest wyłączony w w Twojej domenie.

Skrypt nie ma uprawnień do pobierania tożsamości aktywnego użytkownika.

Oznacza, że tożsamość i adres e-mail aktywnego użytkownika są niedostępne w skrypt. To ostrzeżenie jest wynikiem wywołania do Session.getActiveUser() Może być również wynikiem wywołania funkcji Session.getEffectiveUser() jeśli skrypt działa w trybie autoryzacji innym niż AuthMode.FULL Jeśli to ostrzeżenie zostanie zasygnalizowane, kolejne wywołania User.getEmail() zwraca tylko „”.

Istnieje kilka sposobów rozwiązania tego problemu w zależności od w trybie autoryzacji, w którym działa skrypt. Tryb autoryzacji to widoczne w funkcjach wyzwalanych jako Właściwość authMode komponentu e parametru zdarzenia.

  • W aplikacji AuthMode.FULL możesz użyć: Session.getEffectiveUser() .
  • W narzędziu AuthMode.LIMITED sprawdź, czy właściciel autoryzował skrypt.
  • W innych trybach autoryzacji unikaj wywoływania dowolnej z tych metod.
  • Jeśli jesteś Google Workspace klientem od niedawna zobaczysz to ostrzeżenie z instalacyjny aktywator, sprawdź, czy reguła jest uruchomiona jako użytkownik w organizacji.

Brak biblioteki

Jeśli dodasz do skryptu popularną bibliotekę, może pojawić się komunikat o błędzie z informacją, że brakuje biblioteki, mimo że biblioteka jest wymieniona jako zależność skrypt. Przyczyną może być to, że zbyt wiele osób korzysta z biblioteki. z powrotem. Aby uniknąć tego błędu, wypróbuj jedno z tych rozwiązań:

  • Skopiuj i wklej kod biblioteki do skryptu i usuń bibliotekę zależności.
  • Skopiuj skrypt biblioteki i wdróż go jako bibliotekę ze swojego konta. Upewnij się, , aby zaktualizować zależność w pierwotnym skrypcie do nowej biblioteki a nie publicznego.

Wystąpił błąd z powodu brakującej wersji biblioteki lub wersji wdrożenia. Nie znaleziono kodu błędu

Ten komunikat o błędzie oznacza jedną z następujących sytuacji:

  • Wdrożona wersja skryptu została usunięta. Aby zaktualizować wdrożone można znaleźć w artykule Edytowanie wersji skryptu wdrożenia.
  • Wersja biblioteki używanej przez skrypt została usunięta. Aby sprawdzić, który brakuje biblioteki, kliknij obok jej nazwy Więcej &gt; Otwórz w nowej karcie. Brakująca biblioteka powoduje wyświetlenie komunikatu o błędzie. Po znalezieniu biblioteki, którą chcesz zaktualizować, uruchom jedną z tych czynności:
  • Skrypt biblioteki, z której korzysta Twój skrypt, zawiera inne która korzysta z usuniętej wersji. Wykonaj jedną z tych czynności:
    • Jeśli masz uprawnienia do edycji biblioteki używanej w skrypcie, zaktualizuj atrybut z biblioteki dodatkowej w tym skrypcie do istniejącej wersji.
    • Zaktualizuj bibliotekę, aby użyć innej wersji. Patrz sekcja Aktualizowanie Biblioteka.
    • Usuń bibliotekę z projektu skryptu i kodu. Zobacz Usuwanie biblioteki

Error 400: invalid_scope podczas wywoływania interfejsu Google Chat API za pomocą usługi zaawansowanej

Jeśli zobaczysz komunikat o błędzie Error 400: invalid_scope Some requested scopes cannot be shown, oznacza to, że nie zostały określone żadne zakresy autoryzacji w Plik appsscript.json projektu Apps Script. W większości przypadków Apps Script automatycznie określa zakresy, których potrzebuje skrypt, ale jeśli korzystasz z usługi zaawansowanej Google Chat, musisz ręcznie dodać zakresy autoryzacji używane przez skrypt w celu Plik manifestu projektu Apps Script. Zobacz Ustawianie jawnych zakresów.

Aby naprawić błąd, dodaj odpowiednie zakresy autoryzacji do pliku appsscript.json projektu Apps Script w ramach tablicę oauthScopes. Aby na przykład wywołać funkcję spaces.messages.create , dodaj następujące elementy:

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

Debugowanie

Nie wszystkie błędy powodują wyświetlenie komunikatu o błędzie. Może być ich więcej, drobny błąd. Kod jest poprawny pod względem technicznym i może zostać uruchomiony. nie są zgodne z Twoimi oczekiwaniami. Oto kilka strategii radzenia sobie z i dokładniej przeanalizować skrypt, który nie działa w taki sposób, czego się spodziewać.

Logowanie

Podczas debugowania często warto zapisać informacje jako projekt skryptu, . Skrypt Google Apps Script udostępnia 2 metody rejestrowania informacji: Usługa logowania w chmurze oraz bardziej podstawowe usługi Loggerów i konsoli które są wbudowane w edytor Apps Script.

Więcej informacji znajdziesz w przewodniku dotyczącym logowania.

Error Reporting

Wyjątki spowodowane przez błędy czasu działania są automatycznie zarejestrowane przy użyciu usługi Google Cloud Error Reporting. Ta usługa pozwala wyszukiwanie i filtrowanie komunikatów o wyjątkach tworzonych przez projekt skryptu.

Aby uzyskać dostęp do usługi Error Reporting, zapoznaj się z sekcją Wyświetlanie logów Cloud i raportów o błędach w Konsola Google Cloud Platform.

Uruchomienia

Przy każdym uruchomieniu skryptu Apps Script rejestruje jego wykonanie, łącznie z logami Cloud. Te rekordy mogą pomóc Ci zrozumieć, które jakie działania wykonał skrypt.

Aby wyświetlić wykonania skryptu w Projekt Apps Script, po lewej stronie kliknij Uruchomienia

Sprawdzam stan usługi Apps Script

Google Workspace jest rzadkie, choć czasem może być konkretne usług (takich jak Gmail czy Dysk); napotkać tymczasowe problemy, które mogą prowadzić do przerw w działaniu usługi. Gdy to występuje, projekty Apps Script, które wchodzą w interakcje z tymi usługami, mogą nie działać zgodnie z oczekiwaniami.

Możesz sprawdzić, czy istnieje usługa Google Workspace przestaje być widoczna, wyświetlając Panel stanu Google Workspace. Jeśli przerwa w działaniu usługi obecnie czekasz na jego rozwiązanie lub dodatkowej pomocy Centrum pomocy Google Workspace lub Znane problemy z Google Workspace dokumentacji.

Korzystanie z debugera i punktów przerwania

Aby znaleźć problemy w skrypcie, możesz go uruchomić w trybie debugowania. Po uruchomieniu w w trybie debugowania skrypt wstrzymuje się po dotarciu do punktu przerwania, czyli wiersza w skrypcie, które Twoim zdaniem mogą być przyczyną problemu. Kiedy skrypt powoduje wstrzymanie wyświetlania. wartość każdej zmiennej w danym momencie, dzięki czemu możesz sprawdzić wewnętrzne mechanizmy skryptu bez konieczności dodawania wielu instrukcji logowania.

Dodaj punkt przerwania

Aby dodać punkt przerwania, najedź kursorem na numer wiersza wiersza, do którego chcesz dodać między punktami przerwania. Kliknij kółko po lewej stronie numeru wiersza. Poniższe informacje obraz przedstawia przykład punktu przerwania dodanego do skryptu:

Dodaj punkt przerwania

Uruchamianie skryptu w trybie debugowania

Aby uruchomić skrypt w trybie debugowania, u góry edytora kliknij Debuguj.

Zanim skrypt uruchomi wiersz z punktem przerwania, wstrzymuje działanie i wyświetla komunikat tabeli z informacjami o debugowaniu. Za pomocą tej tabeli możesz analizować dane takie jak wartości parametrów i informacji przechowywanych w obiektach.

Aby sterować sposobem uruchamiania skryptu, u góry panelu Debuger kliknij za pomocą klawiszy „Wejdź”, „Wejdź” i „wyjście”. przyciskami. Dzięki nim możesz uruchamiać skrypt po 1 wierszu i sprawdzanie, jak wartości zmieniają się w czasie.

Problemy z wieloma kontami Google

Jeśli jesteś zalogowany na kilka kont Google jednocześnie, być mają problemy z dostępem do dodatków i aplikacji internetowych. wielokrotne logowanie lub są zalogowane na wiele kont Google jednocześnie, nie jest obsługiwane Skrypty, dodatki lub aplikacje internetowe.

  • Jeśli otworzysz edytor Apps Script po zalogowaniu się na więcej niż jedno konto, Potwierdzenia od Google aby wybrać konto, z którego chcesz kontynuować.

  • Jeśli po otwarciu aplikacji internetowej lub dodatku występują problemy z wielokrotnym logowaniem, wypróbuj jedno z tych rozwiązań: następujące rozwiązania:

    • Wyloguj się ze wszystkich kont Google i zaloguj się tylko na to, na którym jest dodatku lub aplikacji internetowej, do której chcesz uzyskać dostęp.
    • Otwarcie okna incognito w Google Chrome lub równoważnego przeglądania prywatnego. i zaloguj się na konto Google z dodatkiem lub aplikacją internetową do którego chcesz uzyskać dostęp.

Uzyskiwanie pomocy

Debugowanie problemu za pomocą wymienionych powyżej narzędzi i technik może rozwiązać różne różne problemy. Mogą jednak występować problemy, które wymagają aby rozwiązać problem. Odwiedź naszą stronę pomocy dla miejsca, gdzie można zadawać pytania i zgłaszać błędy.