Questa pagina descrive come un'app di Google Chat può aprire finestre di dialogo per visualizzare interfacce utente e rispondere agli utenti.
Le finestre di dialogo sono interfacce a schede che si aprono da uno spazio o da un messaggio di Chat. La finestra di dialogo e i relativi contenuti sono visibili solo all'utente che l'ha aperta.
Le app di chat possono utilizzare le finestre di dialogo per richiedere e raccogliere informazioni dagli utenti di Chat, inclusi i moduli in più passaggi. Per maggiori dettagli sulla creazione di input di moduli, consulta Raccogliere ed elaborare le informazioni degli utenti.
Prerequisiti
HTTP
Un componente aggiuntivo di Google Workspace che estende Google Chat. Per crearne uno, completa la guida rapida HTTP.
Apps Script
Un componente aggiuntivo di Google Workspace che estende Google Chat. Per crearne uno, completa la guida rapida di Apps Script.
Aprire una finestra di dialogo
Questa sezione spiega come rispondere e configurare una finestra di dialogo procedendo nel seguente modo:
- Attiva la richiesta di finestra di dialogo da un'interazione dell'utente.
- Gestisci la richiesta restituendo e aprendo una finestra di dialogo.
- Dopo che gli utenti hanno inviato le informazioni, elabora l'invio chiudendo la finestra di dialogo o restituendo un'altra finestra di dialogo.
Attivare una richiesta di finestra di dialogo
Un'app di chat può aprire finestre di dialogo solo per rispondere a un'interazione dell'utente, ad esempio un comando o un clic su un pulsante da un messaggio in una scheda.
Per rispondere agli utenti con una finestra di dialogo, un'app di chat deve creare un'interazione che attivi la richiesta di finestra di dialogo, ad esempio:
- Rispondi a un comando. Per attivare la richiesta da un comando, devi selezionare la casella di controllo Apre una finestra di dialogo quando configuri il comando.
- Rispondi a un clic su un pulsante in un
messaggio,
come parte di una scheda o nella parte inferiore del messaggio. Per attivare la
richiesta da un pulsante in un messaggio, configura l'
azione
onClickdel pulsante impostandointeractionsuOPEN_DIALOG.
/addContact. Il messaggio include anche un pulsante su cui gli utenti possono fare clic per attivare il comando.
L'esempio di codice seguente mostra come attivare una richiesta di finestra di dialogo da un pulsante in un messaggio della scheda. Per aprire la finestra di dialogo, imposta il campo
onClick.action.interaction
del pulsante su OPEN_DIALOG:
Node.js
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Python
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Java
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Apps Script
Questo esempio invia un messaggio della scheda restituendo il JSON della scheda. Puoi anche utilizzare il servizio di schede di Apps Script.
Aprire la finestra di dialogo iniziale
Quando un utente attiva una richiesta di finestra di dialogo, l'app di chat
riceve un
oggetto evento con un payload
che specifica un dialogEventType oggetto come REQUEST_DIALOG.
Per aprire una finestra di dialogo, l'app di chat può rispondere alla
richiesta restituendo un
RenderActions
oggetto con la navigazione pushCard per visualizzare una scheda. La scheda deve contenere
tutti gli elementi dell'interfaccia utente, incluse una o più
sections[]
di widget. Per raccogliere informazioni dagli utenti, puoi specificare i widget di input del modulo e un widget del pulsante. Per saperne di più sulla progettazione degli input dei moduli, consulta
Raccogliere ed elaborare le informazioni degli utenti.
L'esempio di codice seguente mostra come un'app di chat restituisce una risposta che apre una finestra di dialogo:
Node.js
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Python
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Java
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Apps Script
Questo esempio invia un messaggio della scheda restituendo il JSON della scheda. Puoi anche utilizzare il servizio di schede di Apps Script.
Gestire l'invio della finestra di dialogo
Quando gli utenti fanno clic su un pulsante che invia una finestra di dialogo, l'app di chat riceve un oggetto evento con un
ButtonClickedPayload
oggetto. Nel payload, dialogEventType è impostato su SUBMIT_DIALOG. Per
capire come raccogliere ed elaborare le informazioni nella finestra di dialogo, consulta
Raccogliere ed elaborare le informazioni degli utenti di Google Chat.
L'app di chat deve rispondere all'oggetto evento eseguendo una delle seguenti operazioni:
- Restituisci un'altra finestra di dialogo per compilare un'altra scheda o un altro modulo.
- Chiudi la finestra di dialogo dopo aver convalidato i dati inviati dall'utente e, facoltativamente, invia un messaggio di conferma.
(Facoltativo) Restituire un'altra finestra di dialogo
Dopo che gli utenti hanno inviato la finestra di dialogo iniziale, le app di chat possono restituire una o più finestre di dialogo aggiuntive per aiutare gli utenti a esaminare le informazioni prima dell'invio, completare i moduli in più passaggi o compilare dinamicamente i contenuti dei moduli.
Per elaborare i dati inseriti dagli utenti, l'app di chat
gestisce i dati nell'oggetto
commonEventObject.formInputs
dell'evento. Per saperne di più sul recupero dei valori dai widget di input, consulta
Raccogliere ed elaborare le informazioni degli utenti.
Per tenere traccia di tutti i dati inseriti dagli utenti nella finestra di dialogo iniziale, devi aggiungere parametri al pulsante che apre la finestra di dialogo successiva. Per maggiori dettagli, consulta Trasferire i dati a un'altra scheda.
In questo esempio, un'app di chat apre una finestra di dialogo iniziale che porta a una seconda finestra di dialogo per la conferma prima dell'invio:
Node.js
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Python
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Java
Sostituisci FUNCTION_URL con l'endpoint HTTP che gestisce i clic sui pulsanti.
Apps Script
Questo esempio invia un messaggio della scheda restituendo il JSON della scheda. Puoi anche utilizzare il servizio di schede di Apps Script.
Chiudere la finestra di dialogo
Quando gli utenti fanno clic su un pulsante di invio in una finestra di dialogo, l'app di chat esegue l'azione associata e fornisce l'oggetto evento con buttonClickedPayload impostato su:
isDialogEventètrue.dialogEventTypeèSUBMIT_DIALOG.
L'app di chat deve restituire un
RenderActions
oggetto con
EndNavigation
impostato su CLOSE_DIALOG.
(Facoltativo) Visualizzare una notifica temporanea
Quando chiudi la finestra di dialogo, puoi anche visualizzare una notifica di testo temporanea per l'utente che interagisce con l'app.
Per visualizzare una notifica, restituisci l'
RenderActions
oggetto con il campo notification impostato.
L'esempio seguente chiude la finestra di dialogo con una notifica di testo:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo il JSON della scheda. Puoi anche utilizzare il servizio di schede di Apps Script.
Per maggiori dettagli sul passaggio dei parametri tra le finestre di dialogo, consulta Trasferire i dati a un'altra scheda.
(Facoltativo) Inviare un messaggio di chat di conferma
Quando chiudi la finestra di dialogo, puoi anche inviare un nuovo messaggio di chat o aggiornarne uno esistente.
Per inviare un nuovo messaggio, restituisci un
DataActions
oggetto con il campo
CreateMessageAction impostato con il nuovo messaggio. Ad esempio, per chiudere la finestra di dialogo e inviare un messaggio di testo, restituisci quanto segue:
L'esempio seguente chiude la finestra di dialogo inviando un nuovo messaggio:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo il JSON della scheda. Puoi anche utilizzare il servizio di schede di Apps Script.
Per aggiornare un messaggio dopo che l'utente ha inviato una finestra di dialogo, restituisci un oggetto DataActions che contiene una delle seguenti azioni:
UpdateMessageAction: Aggiorna un messaggio inviato dall'app di chat, ad esempio il messaggio da cui l'utente ha richiesto la finestra di dialogo.UpdateInlinePreviewAction: Aggiorna la scheda da un' anteprima del link.
Risoluzione dei problemi
Quando un'app o scheda di Google Chat restituisce un errore, l' interfaccia di Chat mostra un messaggio che indica che si è verificato un problema. o "Impossibile elaborare la richiesta." A volte l'interfaccia utente di Chat non mostra alcun messaggio di errore, ma l'app o la scheda di Chat produce un risultato imprevisto; ad esempio, un messaggio della scheda potrebbe non essere visualizzato.
Anche se un messaggio di errore potrebbe non essere visualizzato nell'interfaccia utente di Chat, sono disponibili messaggi di errore descrittivi e dati di log per aiutarti a correggere gli errori quando la registrazione degli errori per le app di chat è attiva. Per assistenza nella visualizzazione, nel debug e nella correzione degli errori, consulta Risolvere e correggere gli errori di Google Chat.