Questa pagina descrive come un'app Google Chat può aprire finestre di dialogo per visualizzare le interfacce utente e rispondere agli utenti.
I dialoghi sono interfacce basate su schede che si aprono da un messaggio o uno spazio 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 del modulo, vedi Raccogliere ed elaborare le informazioni degli utenti.
Prerequisiti
HTTP
Un'app Google Chat che riceve e risponde alle interazioni degli utenti. Per crearne uno, completa la guida rapida HTTP.
Apps Script
Un'app Google Chat che riceve e risponde alle interazioni degli utenti. Per crearne uno, completa la guida rapida di Apps Script.
Apri una finestra di dialogo
Questa sezione spiega come rispondere e impostare un dialogo nel seguente modo:
- Attiva la richiesta 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 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 Chat deve creare un'interazione che attivi la richiesta di dialogo, ad esempio:
- Rispondere 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.
- Rispondere a un clic sul pulsante in un
messaggio,
all'interno 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. - Rispondere a un clic sul pulsante nella home page di un'app di chat. Per scoprire come aprire le finestre di dialogo dalle home page, consulta Creare una home page per l'app Google Chat.
/addContact. Il messaggio include anche un pulsante su cui gli utenti possono fare clic per attivare il comando.
Il seguente esempio di codice mostra come attivare una richiesta 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 JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Apri la finestra di dialogo iniziale
Quando un utente attiva una richiesta di dialogo, la tua app Chat
riceve un
oggetto evento con
un payload che specifica un oggetto dialogEventType come REQUEST_DIALOG.
Per aprire una finestra di dialogo, l'app Chat può rispondere alla richiesta restituendo un oggetto RenderActions con la navigazione pushCard per visualizzare una scheda. La scheda deve contenere
qualsiasi elemento dell'interfaccia utente, inclusi uno o più
sections[]
di widget. Per raccogliere informazioni dagli utenti, puoi specificare widget di input del modulo
e un widget pulsante. Per scoprire di più sulla progettazione degli input dei moduli, consulta
Raccogliere ed elaborare le informazioni degli utenti.
Il seguente esempio di codice 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 JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Gestire l'invio della finestra di dialogo
Quando gli utenti fanno clic su un pulsante che invia una finestra di dialogo, la tua app Chat riceve un oggetto evento con un oggetto buttonClickedPayload. 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.
La tua app di chat deve rispondere all'oggetto evento in uno dei seguenti modi:
- 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) Restituisci un'altra finestra di dialogo
Dopo che gli utenti inviano la finestra di dialogo iniziale, le app di chat possono restituire una o più finestre di dialogo aggiuntive per aiutare gli utenti a rivedere le informazioni prima dell'invio, completare moduli in più passaggi o compilare dinamicamente i contenuti dei moduli.
Per elaborare i dati inseriti dagli utenti, l'app Chat
gestisce i dati nell'oggetto
commonEventObject.formInputs
dell'evento. Per scoprire di più sul recupero dei valori dai widget di input, vedi
Raccogliere ed elaborare le informazioni degli utenti.
Per tenere traccia dei dati inseriti dagli utenti nella finestra di dialogo iniziale, devi aggiungere parametri al pulsante che apre la finestra di dialogo successiva. Per maggiori dettagli, vedi Trasferire 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 JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Chiudi 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 Chat deve restituire un oggetto
RenderActions
con
endNavigation
impostato su CLOSE_DIALOG (endNavigation: "CLOSE_DIALOG").
(Facoltativo) Visualizzare una notifica temporanea
Quando chiudi la finestra di dialogo, puoi anche mostrare una notifica di testo temporanea all'utente che sta interagendo con l'app.
Per visualizzare una notifica, restituisci l'oggetto
RenderActions
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 JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Per informazioni dettagliate sul passaggio di parametri tra le finestre di dialogo, consulta Trasferire dati a un'altra scheda.
(Facoltativo) Invia un messaggio di chat di conferma
Quando chiudi la finestra di dialogo, puoi anche inviare un nuovo messaggio chat o aggiornarne uno esistente.
Per inviare un nuovo messaggio, restituisci un oggetto
DataActions
con il campo
CreateMessageAction impostato con il nuovo messaggio.
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 JSON della scheda. Puoi anche utilizzare il servizio di schede 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 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 Google Chat o una scheda restituisce un errore, l'interfaccia di Chat mostra il messaggio "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 Chat produce un risultato imprevisto; ad esempio, un messaggio della scheda potrebbe non essere visualizzato.
Anche se nell'interfaccia utente di Chat potrebbe non essere visualizzato un messaggio di errore, 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 è attivata. Per assistenza nella visualizzazione, nel debug e nella correzione degli errori, consulta Risolvere e correggere gli errori di Google Chat.
Argomenti correlati
- Visualizza l'esempio di Contact Manager, un'app di chat che utilizza le finestre di dialogo per raccogliere i dati di contatto.
- Apri le finestre di dialogo dalla home page di un'app Google Chat.
- Rispondere ai comandi dell'app Google Chat
- Elaborare le informazioni inserite dagli utenti
App di chat che non sono componenti aggiuntivi: apri finestre di dialogo interattive
La seguente documentazione si applica alle app di Chat che non sono componenti aggiuntivi di Google Workspace. Per eseguire la migrazione di un'app di Chat che non è un componente aggiuntivo, vedi Convertire un'app Google Chat in un componente aggiuntivo di Google Workspace.
Attivare una richiesta di dialogo
Il seguente esempio di codice mostra come un'app Chat che
non è un componente aggiuntivo
attiva una richiesta di dialogo da un pulsante in un messaggio della scheda. Per aprire la finestra di dialogo, il campo
button.interaction
è impostato su OPEN_DIALOG:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Apri la finestra di dialogo iniziale
Quando un utente attiva una richiesta di dialogo, un'app di chat che
non è un componente aggiuntivo
riceve un evento di interazione, rappresentato come tipo
event nell'API
Chat. Se l'interazione attiva una richiesta di dialogo, il campo
dialogEventType dell'evento è impostato su REQUEST_DIALOG.
Per aprire una finestra di dialogo, un'app di chat che non è un
componente aggiuntivo può rispondere alla
richiesta restituendo un
oggetto actionResponse con type: "DIALOG" e un
oggetto Message. Per specificare i contenuti della finestra di dialogo, includi i seguenti
oggetti:
- Un oggetto
actionResponse, con la proprietàtypeimpostata suDIALOG. - Un oggetto
dialogAction. Il campobodycontiene gli elementi dell'interfaccia utente (UI) da visualizzare nella scheda, inclusi uno o piùsectionsdi widget. Per raccogliere informazioni dagli utenti, puoi specificare widget di input del modulo e un widget pulsante.
Il seguente esempio di codice mostra come un'app Chat che non è un componente aggiuntivo restituisce una risposta che apre una finestra di dialogo:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Gestire l'invio della finestra di dialogo
Quando gli utenti fanno clic su un pulsante che invia una finestra di dialogo, un'app di chat che non è un componente aggiuntivo riceve un evento di interazione CARD_CLICKED in cui dialogEventType è SUBMIT_DIALOG.
(Facoltativo) Restituisci un'altra finestra di dialogo
Per elaborare i dati inseriti dagli utenti in un'app Chat che non è un componente aggiuntivo, l'app Chat utilizza l'oggetto event.common.formInputs.
In questo esempio, un'app di chat che non è un componente aggiuntivo apre una finestra di dialogo iniziale che porta a una seconda finestra di dialogo per la conferma prima dell'invio:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Chiudi la finestra di dialogo
Quando gli utenti fanno clic su un pulsante in una finestra di dialogo, un'app Chat che non è un componente aggiuntivo esegue l'azione associata e fornisce l'oggetto evento con le seguenti informazioni:
eventTypeèCARD_CLICKED.dialogEventTypeèSUBMIT_DIALOG.
L'app Chat che non è un
componente aggiuntivo deve restituire un
oggetto ActionResponse con type impostato su DIALOG e dialogAction compilato. Se l'azione non ha generato errori, dialogAction.actionStatus dovrebbe essere OK come nell'esempio seguente:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
(Facoltativo) Visualizzare una notifica temporanea
Un'app di chat che non è un
componente aggiuntivo può rispondere con una notifica
di successo o di errore restituendo un
ActionResponse
con actionStatus impostato.
Il seguente esempio verifica che i parametri siano validi e chiude la finestra di dialogo con una notifica di testo quando non sono validi:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
(Facoltativo) Invia un messaggio di chat di conferma
Per inviare un nuovo messaggio quando chiudi una finestra di dialogo in un'app di chat che non è un componente aggiuntivo, restituisci un oggetto ActionResponse con type: "NEW_MESSAGE". L'esempio seguente chiude la
finestra di dialogo con un messaggio di conferma:
Node.js
Python
Java
Apps Script
Questo esempio invia un messaggio della scheda restituendo JSON della scheda. Puoi anche utilizzare il servizio di schede Apps Script.
Per aggiornare un messaggio, restituisci un oggetto actionResponse che contiene il messaggio aggiornato e imposta type su uno dei seguenti valori:
UPDATE_MESSAGE: aggiorna il messaggio che ha attivato la richiesta di dialogo.UPDATE_USER_MESSAGE_CARDS: aggiorna la scheda da un'anteprima del link.