Fogli Google è una soluzione di fogli di lavoro basata su cloud che supporta la collaborazione in tempo reale e fornisce strumenti per visualizzare, elaborare e comunicare i dati.
Questo tutorial mostra come creare ed eseguire il deployment di un flusso di lavoro che crea un endpoint di callback (o webhook), salva l'URL di callback in Fogli Google, mette in pausa l'esecuzione e poi attende l'approvazione umana tramite il foglio di lavoro Fogli per riavviare il flusso di lavoro. Scopri di più sull'utilizzo dei richiami.
Creare una nuova cartella su Google Drive
Crea una nuova cartella su Google Drive. Questa cartella viene utilizzata per archiviare il foglio di lavoro. Se configuri un'autorizzazione per la cartella condivisa, il flusso di lavoro può scrivere nel foglio di lavoro.
- Accedi a drive.google.com.
- Fai clic su Nuovo > Nuova cartella.
- Inserisci un nome per la cartella.
- Fai clic su Crea.
- Fai clic con il tasto destro del mouse sulla nuova cartella e seleziona Condividi.
Aggiungi l'indirizzo email per il service account Compute Engine predefinito.
In questo modo, il account di servizio ha accesso alla cartella. Quando associ ilaccount di serviziot al tuo flusso di lavoro, quest'ultimo avrà l'accesso in modifica a qualsiasi file nella cartella. Scopri di più sulla condivisione di file, cartelle e drive.
Seleziona il ruolo Editor.
Deseleziona la casella di controllo Invia notifiche.
Fai clic su Condividi.
Creare un foglio di lavoro utilizzando Fogli Google
Quando crei un foglio di lavoro tramite Fogli Google, questo viene salvato su Google Drive. Per impostazione predefinita, il foglio di lavoro viene salvato nella cartella principale di Drive. Non esiste alcuna opzione per creare un foglio di lavoro direttamente all'interno di una cartella specificata utilizzando l'API Google Sheets. Tuttavia, esistono alternative, ad esempio spostare il foglio di lavoro in una cartella specifica dopo averlo creato, come in questo esempio. Per saperne di più, vedi Utilizzare le cartelle di Google Drive.
Vai su sheets.google.com.
Fai clic su Nuovo
.
Viene creato e aperto un nuovo foglio di lavoro. Ogni foglio di lavoro ha un valore
spreadsheetId
univoco, contenente lettere, numeri, trattini o trattini bassi. Puoi trovare l'ID del foglio di lavoro in un URL di Fogli Google:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0
Prendi nota di questo ID perché ti servirà quando creerai il flusso di lavoro.
Aggiungi le intestazioni di colonna in modo che corrispondano al seguente esempio:
Tieni presente che il valore nella colonna G, Approvato?, viene utilizzato per avviare i callback nel flusso di lavoro.
Sposta il foglio di lavoro nella cartella di Google Drive che hai creato in precedenza:
- Nel foglio di lavoro, seleziona File > Sposta.
- Vai alla cartella che hai creato.
- Fai clic su Sposta.
Puoi anche utilizzare il
connettore API Google Sheets
per creare un foglio di lavoro. Tieni presente che quando utilizzi il connettore, il
spreadsheetId
può essere recuperato dal risultato resp
.
Ad esempio:
- create_spreadsheet: call: googleapis.sheets.v4.spreadsheets.create args: body: connector_params: scopes: ${driveScope} result: resp - assign_sheet_id: assign: - sheetId: ${resp.spreadsheetId}
Estendere Fogli Google utilizzando Apps Script
Apps Script consente di creare, leggere e modificare programmaticamente i Fogli Google. La maggior parte degli script progettati per Fogli manipola gli array per interagire con le celle, le righe e le colonne di un foglio di lavoro. Per un'introduzione all'utilizzo di Apps Script con Fogli Google, consulta la guida rapida alle funzioni personalizzate.
Crea un progetto Apps Script da Fogli Google:
- Apri il foglio di lavoro Fogli.
- Seleziona Estensioni > Apps Script.
- Nell'editor di script, fai clic su Progetto senza titolo.
- Assegna un nome al progetto e fai clic su Rinomina.
Lo script è ora associato al foglio di lavoro, il che gli conferisce capacità speciali per modificare l'interfaccia utente o rispondere quando il foglio di lavoro viene aperto.
Un progetto di script rappresenta una raccolta di file e risorse Apps Script. I file di codice in un progetto script hanno un'estensione
.gs
.Puoi utilizzare Apps Script per scrivere funzioni personalizzate che puoi utilizzare in Fogli Google proprio come una funzione integrata. Le funzioni personalizzate vengono create utilizzando JavaScript standard. Crea una funzione:
- Apri il progetto Apps Script.
- Fai clic su Editor .
- Un file di script viene visualizzato come file di progetto denominato
Code.gs
. Per modificare il file, selezionalo. Sostituisci qualsiasi codice nell'editor di script con il seguente codice che legge i dati nel foglio di lavoro e li trasmette come input a un'esecuzione del flusso di lavoro:
Fai clic su Salva
.
Gli attivatori installabili di Apps Script consentono a un progetto di script di eseguire una funzione specificata quando vengono soddisfatte determinate condizioni, ad esempio quando un foglio di lavoro viene aperto o modificato. Crea un trigger:
- Apri il progetto Apps Script.
- Fai clic su Attivatori .
- Fai clic su Aggiungi trigger.
- Nella finestra di dialogo Aggiungi trigger per YOUR_PROJECT_NAME, configura il trigger:
- Nell'elenco Scegli la funzione da eseguire, seleziona handleEdit.
- Nell'elenco Scegli quale deployment deve essere eseguito, seleziona Head.
- Nell'elenco Seleziona origine evento, seleziona Da foglio di lavoro.
- Nell'elenco Seleziona il tipo di evento, seleziona Modifica.
- Nell'elenco Impostazioni di notifica degli errori, seleziona Inviami una notifica giornaliera.
- Fai clic su Salva.
Se ti viene chiesto di scegliere un Account Google, seleziona l'account appropriato e poi fai clic su Consenti.
In questo modo, il tuo progetto Apps Script può visualizzare, modificare, creare ed eliminare i tuoi fogli Google e connettersi a un servizio esterno.
Un file manifest del progetto Apps Script è un file JSON che specifica le informazioni di base del progetto necessarie ad Apps Script per eseguire correttamente uno script. Tieni presente che l'editor Apps Script nasconde i file manifest per impostazione predefinita per proteggere le impostazioni del tuo progetto Apps Script. Modifica il file manifest:
- Apri il progetto Apps Script.
- Fai clic su Impostazioni progetto .
- Seleziona la casella di controllo Mostra il file manifest "appsscript.json" nell'editor.
- Fai clic su Editor .
- Il file manifest viene visualizzato come file di progetto denominato
appsscript.json
. Per modificare il file, selezionalo. Il campo
oauthScopes
specifica un array di stringhe. Per impostare gli ambiti di autorizzazione utilizzati dal tuo progetto, aggiungi un array con gli ambiti che vuoi supportare. Ad esempio:{ "timeZone": "America/Toronto", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spreadsheets" ] }
In questo modo vengono impostati ambiti espliciti per:
- Connettersi a un servizio esterno
- Visualizzare, modificare, configurare ed eliminare i tuoi dati di Google Cloud e vedere l'indirizzo email del tuo Account Google
- Visualizzare, modificare, creare ed eliminare tutti i tuoi fogli Google
Fai clic su Salva
.
Esegui il deployment di un flusso di lavoro che scrive in un foglio di lavoro e utilizza i callback
Esegui il deployment di un workflow che viene eseguito, messo in pausa e poi ripreso quando un callback viene approvato tramite un foglio di lavoro. Il flusso di lavoro scrive in un foglio di lavoro utilizzando il connettore dell'API Fogli Google.
Console
Nella console Google Cloud , vai alla pagina Workflows:
Fai clic su
Crea.Inserisci un nome per il nuovo workflow:
workflows-awaits-callback-sheets
.Nell'elenco Regione, seleziona us-central1 (Iowa).
Per Service account, seleziona il account di servizio predefinito di Compute Engine (
PROJECT_NUMBER-compute@
).Fai clic su Avanti.
Nell'editor del workflow, inserisci la seguente definizione per il workflow:
Assicurati di sostituire il valore del segnaposto
sheetId
con il tuospreadsheetId
.Fai clic su Esegui il deployment.
gcloud
Crea un file di codice sorgente per il workflow:
touch workflows-awaits-callback-sheets.yaml
In un editor di testo, copia il seguente flusso di lavoro nel file del codice sorgente:
Assicurati di sostituire il valore del segnaposto
sheetId
con il tuospreadsheetId
.Esegui il deployment del flusso di lavoro inserendo questo comando:
gcloud workflows deploy workflows-awaits-callback-sheets \ --source=workflows-awaits-callback-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@
Sostituisci
PROJECT_NUMBER
con il numero del tuo progetto Google Cloud. Puoi recuperare il numero di progetto:gcloud projects describe PROJECT_ID
Testare il flusso end-to-end
Esegui il workflow per testare il flusso end-to-end. L'esecuzione di un flusso di lavoro esegue la definizione attuale del flusso di lavoro associata al flusso di lavoro.
Console
Nella console Google Cloud , vai alla pagina Workflows:
Nella pagina Workflow, seleziona il workflow workflows-awaits-callback-sheets per andare alla pagina dei dettagli.
Nella pagina Dettagli workflow, fai clic su play_arrow Esegui.
Fai di nuovo clic su Esegui.
Il workflow viene avviato e il suo stato di esecuzione deve essere In esecuzione. I log indicano anche che il flusso di lavoro è in pausa e in attesa:
Execute steps here before waiting for callback from sheets ... Started waiting for callback from sheet 1JlNFFnqs760M_KDqeeeDc_qtrABZDxoalyCmRE39dpM
Verifica che il flusso di lavoro abbia scritto i dettagli del callback in una riga del foglio di lavoro.
Ad esempio, dovresti vedere l'ID di esecuzione del workflow nella colonna ID esecuzione, un endpoint di callback nella colonna URL di callback e FALSE nella colonna Approvato?.
Nel foglio di lavoro, modifica FALSE in TRUE.
Dopo un minuto o due, l'esecuzione dovrebbe riprendere e poi completarsi con lo stato di esecuzione Riuscita.
gcloud
Apri un terminale.
Esegui il workflow:
gcloud workflows run workflows-awaits-callback-sheets
Il flusso di lavoro viene avviato e l'output dovrebbe indicare che il flusso di lavoro è in pausa e in attesa:
Waiting for execution [a8361789-90e0-467f-8bd7-ea1c81977820] to complete...working.
Verifica che il flusso di lavoro abbia scritto i dettagli del callback in una riga del foglio di lavoro.
Ad esempio, dovresti vedere l'ID di esecuzione del workflow nella colonna ID esecuzione, un endpoint di callback nella colonna URL di callback e FALSE nella colonna Approvato?.
Nel foglio di lavoro, modifica FALSE in TRUE.
Dopo un minuto o due, l'esecuzione dovrebbe riprendere e poi completarsi con lo stato di esecuzione
SUCCEEDED
.