Autorizzazione per i servizi Google

Google Apps Script richiede l'autorizzazione dell'utente per accedere ai dati privati da servizi Google integrati o servizi Google avanzati.

Come funziona l'autorizzazione per i servizi Google

Quando uno script richiede l'accesso ai servizi Google, segue questa procedura generale:

  1. Rilevamento: Apps Script esegue la scansione dello script per identificare i servizi che utilizza (ad esempio SpreadsheetApp o GmailApp).
  2. Determinazione dell'ambito: in base alla scansione, Apps Script identifica un insieme di ambiti OAuth necessari per l' esecuzione dello script.
  3. Controllo dell'autorizzazione: quando lo script viene eseguito, controlla se l'utente ha già autorizzato questi ambiti.
  4. Richiesta all'utente: se manca l'autorizzazione, viene visualizzata una finestra di dialogo che chiede all' utente di concedere l'autorizzazione.
  5. Esecuzione: dopo che lo script è stato autorizzato, può accedere ai dati richiesti per l'utente.

Autorizzazioni e tipi di script

L'identità utente con cui viene eseguito uno script e, di conseguenza, i dati a cui può accedere, varia in base allo scenario in cui viene eseguito lo script, come mostrato nella tabella seguente.

Tipo di script Lo script viene eseguito come...
Autonomo, componente aggiuntivo di Google Workspace, o associato a Documenti Google, Fogli Google, Presentazioni Google o Moduli Google Utente alla tastiera
Funzione personalizzata in un foglio di lavoro Utente anonimo; tuttavia, i limiti di quota vengono conteggiati per l'utente alla tastiera
App web o gadget di Google Sites Utente alla tastiera o proprietario dello script, a seconda delle opzioni selezionate durante il deployment dell'app
Trigger installabile Utente che ha creato il trigger

Concedere diritti di accesso

Apps Script determina automaticamente gli ambiti di autorizzazione (ad esempio l'accesso ai file di Fogli o a Gmail) in base a una scansione del codice. Il codice commentato può comunque generare una richiesta di autorizzazione. Se uno script richiede l'autorizzazione, viene visualizzata una finestra di dialogo di autorizzazione quando viene eseguito.

Gli script che hai autorizzato in precedenza richiedono anche un'autorizzazione aggiuntiva se una modifica del codice aggiunge nuovi servizi. Gli script potrebbero non richiedere l'autorizzazione se vi accedi come app web eseguita con l'identità utente del proprietario dello script.

Revocare i diritti di accesso

Per revocare l'accesso di uno script ai tuoi dati:

  1. Vai alla sezione Sicurezza della pagina Google Account.
  2. Nella sezione I tuoi collegamenti con app e servizi di terze parti, fai clic su Vedi tutti i collegamenti.
  3. Seleziona lo script o l'app per cui vuoi revocare l'accesso.
  4. Fai clic su Elimina tutti i collegamenti con APP_NAME, quindi su Conferma.

Limitare l'ambito al documento corrente

Se stai creando un componente aggiuntivo o un altro script che utilizza il servizio Fogli, servizio Documenti, servizio Presentazioni o il servizio Moduli, puoi forzare la finestra di dialogo di autorizzazione a richiedere l'accesso solo ai file in cui viene utilizzato il componente aggiuntivo o lo script, anziché a tutti i fogli di lavoro, i documenti o i moduli di un utente. Per farlo, includi la seguente JSDoc in un commento a livello di file:

/**
 * @OnlyCurrentDoc
 */

È disponibile un'annotazione opposta, @NotOnlyCurrentDoc, se lo script include una libreria che dichiara @OnlyCurrentDoc, ma lo script principale richiede l'accesso a più di il file corrente.

Ciclo di vita dell'autorizzazione per i componenti aggiuntivi

I componenti aggiuntivi per Fogli, Documenti, Presentazioni e Moduli in genere seguono lo stesso modello di autorizzazione degli script che sono associati a un documento. In determinate circostanze, tuttavia, le funzioni onOpen(e) e onEdit(e) vengono eseguite in modalità senza autorizzazione, il che comporta alcune complicazioni aggiuntive. Per maggiori informazioni, consulta la guida al ciclo di vita dell'autorizzazione dei componenti aggiuntivi.

Limiti utente dell'applicazione OAuth

Le applicazioni che utilizzano OAuth per accedere ai dati utente di Google, inclusi i progetti Apps Script, sono soggette a limiti di autorizzazione. Per maggiori dettagli, consulta Limiti utente dell'applicazione OAuth.

Comportamento di riautenticazione con Apps Script

Apps Script non applica la frequenza di riautenticazione che è configurata nelle impostazioni del servizio Google Cloud. Questo perché Apps Script può essere eseguito automaticamente utilizzando i trigger, che funzionano senza interazione utente diretta. Queste esecuzioni automatiche non attivano le richieste di riautenticazione. L'applicazione Apps Script non ti chiede automaticamente di eseguire nuovamente l'autenticazione dopo il periodo di tempo specificato (ad esempio, 12 ore).

Impostare ambiti espliciti nel manifest

Apps Script determina automaticamente gli ambiti richiesti eseguendo la scansione del codice per le chiamate di funzione. Se hai bisogno di un maggiore controllo, puoi impostare esplicitamente gli ambiti nel manifest del progetto (appsscript.json). Questa operazione è consigliata per gli script pubblicati per assicurarti di utilizzare le autorizzazioni minime richieste.

Per le istruzioni, vedi Impostare ambiti espliciti.

Risoluzione dei problemi

  • Errore"Autorizzazione richiesta" durante l'esecuzione di un trigger: i trigger devono essere autorizzati dall'utente che li ha creati. Se aggiungi codice che richiede nuove autorizzazioni, devi eseguire manualmente una funzione nell'editor di script una volta per attivare la finestra di dialogo di autorizzazione.
  • Gli ambiti non vengono aggiornati: se hai aggiornato il codice, ma la finestra di dialogo di autorizzazione non riflette le modifiche, prova a salvare il progetto e ad aggiornare l'editor. Se utilizzi ambiti espliciti nel manifest, assicurati di aver aggiunto il nuovo ambito all'array oauthScopes.
  • Avviso "Questa app è bloccata" o app non verificata: si verifica se lo script utilizza ambiti sensibili o con restrizioni e non è stato verificato da Google. Vedi Verifica del client OAuth.