Apps Script richiede l'autorizzazione dell'utente per accedere ai dati privati dei servizi Google integrati o dei servizi Google avanzati.
Come funziona l'autorizzazione per i servizi Google
Quando uno script richiede l'accesso ai servizi Google, segue questa procedura generale:
- Rilevamento: Apps Script analizza lo script per identificare i servizi che utilizza (ad esempio
SpreadsheetAppoGmailApp). - Determinazione dell'ambito: in base alla scansione, Apps Script identifica un insieme di ambiti OAuth necessari per l'esecuzione dello script.
- Controllo dell'autorizzazione: quando viene eseguito lo script, viene verificato se l'utente ha già autorizzato questi ambiti.
- Richiesta all'utente: se manca l'autorizzazione, viene visualizzata una finestra di dialogo che chiede all'utente di concedere l'autorizzazione.
- Esecuzione: dopo l'autorizzazione, lo script può accedere ai dati richiesti per l'utente.
Autorizzazioni e tipi di script
L'identità utente con cui viene eseguito uno script e quindi i dati a cui può accedere variano 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 o associato a Documenti, Fogli, Presentazioni o Moduli | 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 l'implementazione 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 Google 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 un'autorizzazione, quando viene eseguito vedrai una delle finestre di dialogo di autorizzazione mostrate qui.
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:
- Visita la pagina delle autorizzazioni per il tuo Account Google. Per tornare a questa pagina in futuro, visita Google.com, poi fai clic sulla tua immagine dell'account nell'angolo in alto a destra dello schermo. Poi fai clic su Il mio account, poi su App e siti collegati nella sezione "Accesso e sicurezza" e poi su Gestisci app.)
- Fai clic sul nome dello script di cui vuoi revocare l'autorizzazione, quindi fai clic su Rimuovi a destra e poi su Ok nella finestra di dialogo risultante.
Limita l'ambito al documento corrente
Se stai creando un componente aggiuntivo o un altro script che utilizza il servizio Fogli, il servizio Documenti, il servizio Presentazioni o il servizio Moduli, puoi forzare la finestra di dialogo di autorizzazione a chiedere 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. A questo scopo, includi la seguente annotazione 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
un file.
Ciclo di vita dell'autorizzazione per i componenti aggiuntivi
I componenti aggiuntivi per Fogli, Documenti, Presentazioni e Moduli Google
in genere seguono lo stesso modello di autorizzazione degli script
associati a un documento. In determinate
circostanze, tuttavia, le funzioni onOpen(e) e onEdit(e) vengono eseguite in una
modalità senza autorizzazione che presenta alcune complicazioni aggiuntive. Per ulteriori
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 la sezione Limiti utente delle applicazioni OAuth.
Comportamento di riautenticazione con Apps Script
Apps Script non applica la frequenza di riautenticazione che configuri nelle impostazioni dei servizi Google Cloud. Questo perché Apps Script può essere eseguito automaticamente utilizzando i trigger, che funzionano senza interazione diretta dell'utente. Queste esecuzioni automatiche non attivano i prompt di riautenticazione. La tua applicazione Apps Script non ti chiederà automaticamente di eseguire di nuovo l'autenticazione dopo il periodo di tempo specificato (ad esempio, 12 ore).
Imposta 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 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.
- Ambiti non 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. - "Questa app è bloccata" o avviso di app non verificata: questo si verifica se lo script utilizza ambiti sensibili o con restrizioni e non è stato verificato da Google. Vedi Verifica client OAuth.