Risoluzione dei problemi

Anche lo sviluppatore più esperto raramente scrive correttamente il codice la prima volta fare in modo che la risoluzione dei problemi sia una parte importante del processo di sviluppo. Nella In questa sezione illustreremo alcune tecniche che possono aiutarti a trovare, comprendere eseguire il debug degli errori nei tuoi script.

Messaggi di errore

Quando lo script rileva un errore, viene visualizzato un messaggio. Il messaggio è accompagnato da un numero di riga utilizzato per la risoluzione dei problemi. Esistono due tipi di regole tipi di errori visualizzati in questo modo: errori di sintassi ed errori di runtime.

Errori di sintassi

Gli errori di sintassi sono causati dalla scrittura di codice che non segue il codice JavaScript e gli errori vengono rilevati non appena provi a salvare lo script. Ad esempio, il seguente snippet di codice contiene un errore di sintassi:

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

Il problema di sintassi qui è un carattere ) mancante alla fine del quarto dalla riga di comando. Quando provi a salvare lo script, viene visualizzato il seguente errore:

) mancante dopo l'elenco di argomenti. (riga 4)

Questi tipi di errori sono di solito facili da risolvere, poiché si e in genere hanno cause semplici. Non puoi salvare un che contiene errori di sintassi, vale a dire che in un file YAML viene salvato solo codice valido del tuo progetto.

Errori di runtime

Questi errori sono causati dall'uso non corretto di una funzione o di una classe e possono solo vengano rilevate dopo l'esecuzione dello script. Ad esempio, il seguente codice causa un errore di runtime:

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

Il formato del codice è corretto, ma passiamo il valore "john" per indirizzo email durante la chiamata a MailApp.sendEmail. Poiché non si tratta di un un indirizzo email valido, viene restituito il seguente errore durante l'esecuzione dello script:

Indirizzo email non valido: mario (riga 5)

Ciò che rende più difficile la risoluzione di questi errori è che spesso i dati che passi in una funzione non è scritto nel codice, ma è eseguito da un foglio di lavoro, un modulo o un'altra origine dati esterna. Utilizzare il debug tecniche riportate di seguito possono aiutarti a identificare la causa di questi errori.

Errori comuni

Di seguito è riportato un elenco di errori comuni e le relative cause.

Servizio richiamato troppe volte: <nome azione>

Questo errore indica che hai superato la quota giornaliera per una determinata azione. Ad esempio, potresti riscontrare questo errore se invii troppe email in un singolo giorno. Le quote sono impostate su livelli diversi per consumer, dominio e e sono soggetti a modifica in qualsiasi momento senza comunicato da Google. Puoi visualizzare i limiti di quota per diverse azioni nella documentazione sulle quote di Apps Script.

Server non disponibile o Si è verificato un errore del server.Riprova.

Esistono alcune possibili cause di questi errori:

  • Un server o un sistema Google è temporaneamente non disponibile. Attendi qualche istante e prova a eseguire nuovamente lo script.
  • Nello script è presente un errore che non ha un errore corrispondente per creare un nuovo messaggio email. Prova a eseguire il debug dello script e verifica se riesci a isolare il problema.
  • Questo errore è causato da un bug di Google Apps Script. Per istruzioni sulla ricerca e sull'invio di segnalazioni di bug, consulta Bug. Prima di segnalare un nuovo bug, effettua una ricerca per vedere se altri lo hanno già segnalato.

Per eseguire questa azione è necessaria l'autorizzazione.

Questo errore indica che lo script non dispone dell'autorizzazione necessaria per l'esecuzione. Quando uno script viene eseguito nell'editor di script o da una voce di menu personalizzata, viene presentata all'utente una finestra di dialogo di autorizzazione. Tuttavia, quando viene eseguito uno script da un trigger, incorporato in una pagina di Google Sites o eseguito come servizio, Impossibile presentare la finestra di dialogo e viene visualizzato questo errore.

Per autorizzare lo script, apri l'editor di script ed esegui una funzione. La viene visualizzato un prompt di autorizzazione per autorizzare il progetto di script. Se lo script contiene nuovi servizi non autorizzati. Devi autorizzare nuovamente lo script.

Questo errore è causato spesso da attivatori che si attivano prima dell'evento l'utente li ha autorizzati. Se non hai accesso al progetto dello script (perché l'errore si verifica per un componente aggiuntivo che ad esempio), in genere puoi autorizzare lo script utilizzando il componente aggiuntivo di nuovo. Se un attivatore continua ad attivarsi e causa questo errore, puoi rimuovere il si attiva nel seguente modo:

  1. A sinistra del progetto Apps Script, fai clic su Trigger .
  2. A destra dell'attivatore da rimuovere, fai clic su Altro . &gt; Elimina trigger.

Puoi anche rimuovere gli attivatori di componenti aggiuntivi problematici disinstallare il componente aggiuntivo.

Accesso negato: DriveApp o Nel criterio del dominio sono state disattivate le app Drive di terze parti

Gli amministratori dei Google Workspace domini hanno la possibilità di disattivare API Drive per il dominio, che impedisce agli utenti di l'installazione e l'utilizzo delle applicazioni Google Drive. Questa impostazione impedisce inoltre agli utenti di poter usare componenti aggiuntivi di Apps Script che usano servizio Drive o Servizio Drive avanzato anche se lo script è stato autorizzato prima che l'amministratore abbia disattivato l'API Drive.

Tuttavia, se un componente aggiuntivo o un'app web che utilizza il servizio Drive viene pubblicato per installazione a livello di dominio ed è installato dall'amministratore per alcuni o tutti gli utenti del dominio, le funzioni dello script per questi utenti anche se l'API Drive è disattivata nella dominio.

Lo script non è autorizzato a recuperare l'identità dell'utente attivo.

Indica che l'identità e l'indirizzo email dell'utente attivo non sono disponibili per lo script. Questo avviso proviene da una chiamata a Session.getActiveUser() Può anche derivare da una chiamata a Session.getEffectiveUser() se lo script è in esecuzione in una modalità di autorizzazione diversa da AuthMode.FULL. Se viene segnalato questo avviso, le chiamate successive a User.getEmail() restituisce solo "".

Esistono diversi modi per risolvere questo avviso, a seconda del di autorizzazione in cui è eseguito lo script. La modalità di autorizzazione è esposto nelle funzioni attivate come proprietà authMode di e parametro evento.

  • In AuthMode.FULL, valuta la possibilità di utilizzare Session.getEffectiveUser() .
  • In AuthMode.LIMITED, assicurati che il proprietario abbia autorizzato lo script.
  • In altre modalità di autorizzazione, evita di chiamare uno dei due metodi.
  • Se sei un Google Workspace cliente di recente stai ricevendo questo avviso da un trigger installabile, assicurati che l'attivatore è in esecuzione come utente all'interno della tua organizzazione.

Raccolta mancante

Se aggiungi una libreria popolare al tuo script, potresti ricevere un messaggio di errore che indica che non è presente, anche se la libreria è elencata come dipendenza lo script. Il motivo potrebbe essere che troppe persone accedono alla raccolta contemporaneamente. Per evitare questo errore, prova una delle seguenti soluzioni:

  • Copia e incolla il codice della libreria nello script e rimuovi la libreria la dipendenza.
  • Copia lo script della libreria e implementalo come libreria dal tuo account. Assicurati che per aggiornare la dipendenza nello script originale con la nuova libreria anziché quella pubblica.

Si è verificato un errore a causa di una versione mancante della libreria o di una versione del deployment. Codice di errore non trovato

Questo messaggio di errore indica una delle seguenti situazioni:

  • La versione dello script di cui è stato eseguito il deployment è stata eliminata. per aggiornare il deployment dello script, consulta l'articolo Modificare il controllo deployment.
  • La versione di una libreria utilizzata dallo script è stata eliminata. Per verificare quali libreria mancante, fai clic su accanto al nome della libreria Altro &gt; Apri in una nuova scheda. La libreria mancante restituisce un messaggio di errore. Dopo aver trovato la libreria da aggiornare, procedi nel seguente modo: una delle seguenti azioni:
  • Lo script di una libreria utilizzato dal tuo script include un altro che utilizza una versione eliminata. Esegui una delle seguenti azioni:
    • Se disponi dell'accesso in modifica alla libreria utilizzata dal tuo script, aggiorna il libreria secondaria di questo script a una versione esistente.
    • Aggiorna la libreria per utilizzare una versione diversa. Consulta la sezione Aggiornare un libreria di Google.
    • Rimuovi la libreria dal codice e dal progetto di script. Consulta Rimuovere una raccolta.

Errore 400: invalid_scope durante la chiamata all'API Google Chat con il servizio avanzato

Se riscontri Error 400: invalid_scope con il messaggio di errore Some requested scopes cannot be shown, significa che non hai specificato alcun ambito di autorizzazione File appsscript.json del progetto Apps Script. Nella maggior parte dei casi, Apps Script determina automaticamente gli ambiti necessari per uno script, ma quando utilizzi il servizio avanzato di Chat, devi aggiungere manualmente gli ambiti di autorizzazione utilizzati dal tuo script il file manifest del progetto Apps Script. Consulta Impostazione di ambiti espliciti.

Per risolvere l'errore, aggiungi gli ambiti di autorizzazione appropriati al file appsscript.json del progetto Apps Script come parte di l'array oauthScopes. Ad esempio, per chiamare il metodo spaces.messages.create , aggiungi quanto segue:

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

Chiamate UrlFetch a <URL> non sono consentiti dal tuo amministratore

Gli amministratori di Google Workspace possono attivare una lista consentita nella Console di amministrazione per controllare a quali domini esterni puoi accedere tramite Apps Script.

Per risolvere l'errore, contatta l'amministratore per richiedere l'aggiunta dell'URL. alla lista consentita.

Debug

Non tutti gli errori causano la visualizzazione di un messaggio di errore. Potrebbe esserci un ulteriore piccolo errore in cui il codice è tecnicamente corretto e può essere eseguito, ma i risultati non sono quelli previsti. Ecco alcune strategie per gestire situazioni e l'analisi di uno script che non viene eseguito nel modo in base alle previsioni.

Logging

Durante il debug spesso è utile registrare le informazioni come progetto di script . Google Apps Script prevede due metodi per la registrazione delle informazioni: Servizio Cloud Logging e i servizi di log e console di base. integrati nell'editor di Apps Script.

Per ulteriori dettagli, consulta la Guida al logging.

Error Reporting

Le eccezioni che si verificano a causa di errori di runtime vengono registrati utilizzando il servizio Google Cloud Error Reporting. Questo servizio ti consente cercare e filtrare i messaggi di eccezione creati dal progetto di script.

Per accedere a Error Reporting, vedi Visualizzare i log e i report sugli errori di Cloud in Console di Google Cloud.

Esecuzioni

Ogni volta che esegui uno script, Apps Script registra l'esecuzione, inclusi i log di Cloud. Questi record possono aiutarti a capire azioni eseguite dallo script.

Per visualizzare le esecuzioni del tuo script nella Nel progetto Apps Script, a sinistra, fai clic su Esecuzioni. .

Controllo dello stato del servizio Apps Script

Anche se è raro, a volte Google Workspace (come Gmail o Drive) problemi temporanei che possono portare a interruzioni del servizio. Quando questo i progetti Apps Script che interagiscono con questi servizi potrebbero non funzionare come previsto.

Puoi verificare se è disponibile un servizio Google Workspace un'interruzione del servizio visualizzando Dashboard dello stato di Google Workspace. Se si verifica un'interruzione attualmente in fase di sperimentazione, si attende che venga risolto o ulteriore assistenza nel Centro assistenza Google Workspace o il Problemi noti di Google Workspace documentazione.

Utilizzare il debugger e i punti di interruzione

Per individuare i problemi nello script, puoi eseguirlo in modalità di debug. Quando eseguita in modalità di debug, uno script viene messo in pausa quando raggiunge un punto di interruzione, ovvero una riga evidenziati nello script e che ritieni possano presentare un problema. Quando uno script mette in pausa la visualizzazione il valore di ogni variabile in quel momento, consentendoti di esaminare i meccanismi interni di uno script senza dover aggiungere molte istruzioni di logging.

Aggiungi un punto di interruzione

Per aggiungere un punto di interruzione, passa il mouse sopra il numero di riga della riga a cui vuoi aggiungere la riga a cui si riferisce il punto di interruzione. A sinistra della linea del numero, fai clic sul cerchio. Quanto riportato di seguito mostra un esempio di un punto di interruzione aggiunto a uno script:

Aggiungi un punto di interruzione

Eseguire uno script in modalità di debug

Per eseguire lo script in modalità di debug, fai clic su Debug nella parte superiore dell'editor.

Prima che lo script esegua la riga con il punto di interruzione, viene messo in pausa e viene visualizzata una una tabella delle informazioni di debug. Puoi utilizzare questa tabella per esaminare dati come i valori dei parametri e le informazioni archiviate negli oggetti.

Per controllare la modalità di esecuzione dello script, nella parte superiore del riquadro Debugger, usa le opzioni "Entra", "Passi avanti" e "Esci" pulsanti. che ti consentono di eseguire script una riga alla volta e controlla come cambiano i valori nel tempo.

Problemi con più Account Google

Se hai eseguito l'accesso a più Account Google contemporaneamente, puoi avere problemi di accesso ai componenti aggiuntivi e alle app web. Accesso multiplo oppure accesso simultaneo a più Account Google, non è supportata per le app Script, componenti aggiuntivi o app web.

  • Se apri l'editor di Apps Script dopo aver eseguito l'accesso a più account, Richieste da Google devi scegliere l'account con cui procedere.

  • Se apri un'app web o un componente aggiuntivo e riscontri problemi di accesso multiplo, prova una delle le seguenti soluzioni:

    • Esci da tutti i tuoi Account Google e accedi solo a quello che dispone della componente aggiuntivo o app web a cui vuoi accedere.
    • Apri una finestra di navigazione in incognito in Google Chrome o una funzione di navigazione privata equivalente. e accedi all'Account Google contenente il componente aggiuntivo o l'app web a cui vuoi accedere.

Richiesta di aiuto

Il debug di un problema con gli strumenti e le tecniche sopra elencati può risolvere problemi diversi, ma potresti riscontrare alcuni che richiedono per risolvere il problema. Consulta la nostra pagina di assistenza per informazioni su dove porre domande e segnalare bug.