Questa pagina descrive come configurare un webhook per inviare messaggi asincroni a uno spazio di Chat utilizzando trigger esterni. Ad esempio, puoi configurare un'applicazione di monitoraggio per inviare notifiche al personale di guardia su Chat quando un server smette di funzionare. Per inviare un messaggio sincrono con un'app di chat, vedi Inviare un messaggio.
Con questo tipo di progettazione dell'architettura, gli utenti non possono interagire con il webhook o con l'applicazione esterna connessa perché la comunicazione è unidirezionale. I webhook non sono colloquiali. Non può rispondere o ricevere messaggi dagli utenti o dagli eventi di interazione con l'app di Chat. Per rispondere ai messaggi, crea un'app di Chat anziché un webhook.
Sebbene un webhook non sia tecnicamente un'app di chat, i webhook connettono le applicazioni utilizzando richieste HTTP standard, ma questa pagina lo fa come app di Chat per semplificarlo. Ogni webhook funziona solo nello spazio di Chat in cui è registrato. I webhook in arrivo funzionano nei messaggi diretti, ma solo quando tutti gli utenti hanno App di Chat abilitate. Non puoi pubblicare webhook in Google Workspace Marketplace.
Il seguente diagramma mostra l'architettura di un webhook connesso a Chat:
Nel diagramma precedente, un'app di chat presenta il seguente flusso di informazioni:
- La logica dell'app Chat riceve informazioni da servizi di terze parti esterni, ad esempio un sistema di gestione dei progetti o uno strumento di gestione dei ticket.
- La logica dell'app Chat è ospitata in un sistema cloud o on-premise che può inviare messaggi utilizzando un URL webhook a uno spazio di Chat specifico.
- Gli utenti possono ricevere messaggi dall'app Chat in quello specifico spazio di Chat, ma non possono interagire con l'app Chat.
Prerequisiti
Python
- Python 3.10.7 o versioni successive.
- Un account Google Workspace con accesso a Chat.
- Un progetto Google Cloud.
- Assicurati di attivare la fatturazione per il tuo progetto Cloud. Scopri come verificare lo stato di fatturazione dei tuoi progetti.
- Uno spazio di Chat esistente.
La libreria
httplib2
. Se necessario, esegui il seguente comando dell'interfaccia a riga di comando (CLI) per installare la libreria utilizzandopip
:pip install httplib2
Node.js
- Node.js e npm installati.
- Un account Google Workspace con accesso a Chat.
- Un progetto Google Cloud.
- Assicurati di attivare la fatturazione per il tuo progetto Cloud. Scopri come verificare lo stato di fatturazione dei tuoi progetti.
- Uno spazio di Chat esistente.
Java
- Java 11 o versioni successive.
- Apache Maven
- Un account Google Workspace con accesso a Chat.
- Un progetto Google Cloud.
- Assicurati di attivare la fatturazione per il tuo progetto Cloud. Scopri come verificare lo stato di fatturazione dei tuoi progetti.
- Uno spazio di Chat esistente.
Apps Script
- Un account Google Workspace con accesso a Chat.
- Uno spazio di Chat esistente.
Crea un webhook
Per creare un webhook, registralo nello spazio di Chat in cui vuoi ricevere i messaggi, quindi scrivi uno script che invia messaggi.
Registra il webhook in arrivo
- In un browser, apri Chat. I webhook non sono configurabili dall'app mobile Chat.
- Vai allo spazio in cui vuoi aggiungere un webhook.
- Accanto al titolo dello spazio, fai clic sulla freccia di espansione e poi su App e integrazioni.
- Fai clic su Aggiungi webhook.
- Nel campo Nome, inserisci
Quickstart Webhook
. - Nel campo URL avatar, inserisci
https://developers.google.com/chat/images/chat-product-icon.png
. - Fai clic su Salva.
- Per copiare l'URL webhook, fai clic su Altro, poi su Copia link.
Scrivi lo script webhook
Lo script webhook di esempio invia un messaggio allo spazio in cui è registrato il webhook inviando una richiesta POST
all'URL webhook. L'API Chat risponde con un'istanza di Message
.
Seleziona una lingua per scoprire come creare uno script webhook:
Python
Nella directory di lavoro, crea un file denominato
quickstart.py
.In
quickstart.py
, incolla il seguente codice:Sostituisci il valore della variabile
WEBHOOK_URL
con l'URL webhook che hai copiato quando hai registrato il webhook.
Node.js
Nella directory di lavoro, crea un file denominato
index.js
.In
index.js
, incolla il seguente codice:Sostituisci il valore della variabile
webhookURL
con l'URL webhook che hai copiato quando hai registrato il webhook.
Java
Nella directory di lavoro, crea un file denominato
pom.xml
.In
pom.xml
, copia e incolla quanto segue:Nella directory di lavoro, crea la seguente struttura di directory
src/main/java
.Nella directory
src/main/java
, crea un file denominatoApp.java
.In
App.java
, incolla il seguente codice:Sostituisci il valore della variabile
URL
con l'URL webhook che hai copiato quando hai registrato il webhook.
Apps Script
In un browser, vai ad Apps Script.
Fai clic su Nuovo progetto
Incolla il codice seguente:
Sostituisci il valore della variabile
url
con l'URL webhook che hai copiato quando hai registrato il webhook.
Esegui lo script webhook
In un'interfaccia a riga di comando, esegui lo script:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Script
- Fai clic su Esegui.
Quando esegui il codice, il webhook invia un messaggio allo spazio in cui l'hai registrato.
Avviare o rispondere a un thread di messaggi
Specifica
spaces.messages.thread.threadKey
come parte del corpo della richiesta del messaggio. A seconda che tu stia avviando o rispondendo a un thread, utilizza i seguenti valori perthreadKey
:Se avvii un thread, imposta
threadKey
su una stringa arbitraria, ma prendi nota di questo valore per pubblicare una risposta al thread.Se rispondi a un thread, specifica il
threadKey
impostato quando è stato avviato il thread. Ad esempio, per pubblicare una risposta al thread in cui il messaggio iniziale utilizzavaMY-THREAD
, impostaMY-THREAD
.
Definisci il comportamento del thread se il valore
threadKey
specificato non viene trovato:Rispondi a un thread o avviane uno nuovo. Aggiungi il parametro
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
all'URL webhook. Se passi questo parametro URL, Chat cerca un thread esistente utilizzando il valorethreadKey
specificato. Se ne viene trovato uno, il messaggio viene pubblicato come risposta a quel thread. Se non ne trova nessuno, il messaggio avvia un nuovo thread corrispondente athreadKey
.Rispondi a un thread o non fare nulla. Aggiungi il parametro
messageReplyOption=REPLY_MESSAGE_OR_FAIL
all'URL webhook. Se passi questo parametro URL, Chat cerca un thread esistente utilizzando il valorethreadKey
specificato. Se ne viene trovato uno, il messaggio viene pubblicato come risposta a quel thread. Se non ne trova nessuno, il messaggio non viene inviato.
Per scoprire di più, visita la pagina
messageReplyOption
.
Il seguente esempio di codice avvia o risponde a un thread di messaggi:
Python
Node.js
Apps Script
Argomenti correlati
- Scegliere un'architettura dell'app di Chat
- Inviare messaggi relativi alle schede
- Formattare i messaggi