Questa pagina spiega come creare un'app Chat utilizzando Pub/Sub. Questo tipo di architettura per un'app di Chat è utile se la tua organizzazione ha un firewall, che può impedire a Chat di inviare messaggi alla tua app di Chat, o se l'app di Chat utilizza l'API Google Workspace Events. Tuttavia, questa architettura presenta i seguenti limiti dovuti al fatto che queste app di chat possono inviare e ricevere solo messaggi asincroni:
- Non puoi utilizzare i dialoghi nei messaggi. Utilizza invece un messaggio della scheda.
- Impossibile aggiornare le singole schede con una risposta sincrona. Aggiorna invece
l'intero messaggio chiamando il
metodo
patch
.
Il seguente diagramma mostra l'architettura di un'app di chat creata con Pub/Sub:
Nel diagramma precedente, un utente che interagisce con un'app di chat Pub/Sub ha il seguente flusso di informazioni:
Un utente invia un messaggio in Chat a un'app di chat, in un messaggio diretto o in uno spazio di Chat, oppure si verifica un evento in uno spazio di Chat per il quale l'app di chat ha un abbonamento attivo.
Chat invia il messaggio a un argomento Pub/Sub.
Un server delle applicazioni, ovvero un sistema cloud o on-premise che contiene la logica dell'app Chat, si iscrive all'argomento Pub/Sub per ricevere il messaggio tramite il firewall.
Se vuoi, l'app Chat può chiamare l'API Chat per pubblicare messaggi in modo asincrono o eseguire altre operazioni.
Prerequisiti
Java
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Un progetto Google Cloud con la fatturazione abilitata. Per verificare che la fatturazione sia attivata per un progetto esistente, consulta Verificare lo stato di fatturazione dei progetti. Per creare un progetto e configurare la fatturazione, consulta Creare un progetto Google Cloud.
- Java 11 o versioni successive
- Lo strumento di gestione dei pacchetti Maven
Python
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Un progetto Google Cloud con la fatturazione abilitata. Per verificare che la fatturazione sia attivata per un progetto esistente, consulta Verificare lo stato di fatturazione dei progetti. Per creare un progetto e configurare la fatturazione, consulta Creare un progetto Google Cloud.
- Python 3.6 o versioni successive
- Lo strumento di gestione pacchetti pip
Node.js
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Un progetto Google Cloud con la fatturazione abilitata. Per verificare che la fatturazione sia attivata per un progetto esistente, consulta Verificare lo stato di fatturazione dei progetti. Per creare un progetto e configurare la fatturazione, consulta Creare un progetto Google Cloud.
- Node.js 14 o versioni successive
- Lo strumento di gestione pacchetti npm
-
Un progetto Node.js inizializzato. Per inizializzare un nuovo progetto, crea e
passa a una nuova cartella, quindi esegui questo comando nell'interfaccia a riga di comando:
npm init
Configurare l'ambiente
Prima di utilizzare le API di Google, devi attivarle in un progetto Google Cloud. Puoi attivare una o più API in un singolo progetto Google Cloud.Nella console Google Cloud, abilita l'API Google Chat e l'API Pub/Sub.
Configurare Pub/Sub
Crea un argomento Pub/Sub a cui l'API Chat può inviare messaggi. Ti consigliamo di utilizzare un solo argomento per ogni app di chat.
Concedi l'autorizzazione a Chat di pubblicare nell'argomento assegnando il ruolo Publisher Pub/Sub al seguente service account:
chat-api-push@system.gserviceaccount.com
Crea un service account per l'app Chat da autorizzare con Pub/Sub e Chat e salva il file della chiave privata nella directory di lavoro.
Crea una sottoscrizione pull all'argomento.
Assegna il ruolo Sottoscrittore Pub/Sub alla sottoscrizione per il service account che hai creato in precedenza.
Scrivere lo script
Java
In una CLI, fornisci le credenziali del service account:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
In una CLI, fornisci l'ID progetto Google Cloud:
export PROJECT_ID=PROJECT_ID
In un'interfaccia a riga di comando, fornisci l'ID sottoscrizione per la sottoscrizione Pub/Sub che hai creato in precedenza:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Nella directory di lavoro, crea un file denominato
pom.xml
.Nel file
pom.xml
, incolla il seguente codice:Nella directory di lavoro, crea la struttura di directory
src/main/java
.Nella directory
src/main/java
, crea un file denominatoMain.java
.In
Main.java
, incolla il seguente codice:
Python
In una CLI, fornisci le credenziali del service account:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
In una CLI, fornisci l'ID progetto Google Cloud:
export PROJECT_ID=PROJECT_ID
In un'interfaccia a riga di comando, fornisci l'ID sottoscrizione per la sottoscrizione Pub/Sub che hai creato in precedenza:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Nella directory di lavoro, crea un file denominato
requirements.txt
.Nel file
requirements.txt
, incolla il seguente codice:Nella directory di lavoro, crea un file denominato
app.py
.In
app.py
, incolla il seguente codice:
Node.js
In una CLI, fornisci le credenziali del service account:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
In una CLI, fornisci l'ID progetto Google Cloud:
export PROJECT_ID=PROJECT_ID
In un'interfaccia a riga di comando, fornisci l'ID sottoscrizione per la sottoscrizione Pub/Sub che hai creato in precedenza:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Nella directory di lavoro, crea un file denominato
package.json
.Nel file
package.json
, incolla il seguente codice:Nella directory di lavoro, crea un file denominato
index.js
.In
index.js
, incolla il seguente codice:
Pubblicare l'app su Chat
Nella console Google Cloud, vai a Menu > API e servizi > API e servizi abilitati > API Google Chat > Configurazione.
Configura l'app Chat per Pub/Sub:
- In Nome dell'app, inserisci
Quickstart App
. - In URL avatar, inserisci
https://developers.google.com/chat/images/quickstart-app-avatar.png
. - In Descrizione, inserisci
Quickstart app
. - In Funzionalità, seleziona Partecipa a spazi e conversazioni di gruppo.
- In Impostazioni di connessione, seleziona Cloud Pub/Sub e incolla il nome dell'argomento Pub/Sub che hai creato in precedenza.
- In Visibilità, seleziona Rendi disponibile questa app Google Chat a utenti e gruppi specifici nel tuo dominio e inserisci il tuo indirizzo email.
- In Log, seleziona Errori di log in Logging.
- In Nome dell'app, inserisci
Fai clic su Salva.
L'app è pronta a ricevere e rispondere ai messaggi su Chat.
Esegui lo script
In un'interfaccia a riga di comando, passa alla directory di lavoro ed esegui lo script:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
Quando esegui il codice, l'applicazione inizia ad ascoltare i messaggi pubblicati nell'argomento Pub/Sub.
Testare l'app Chat
Per testare l'app Chat, apri uno spazio di messaggi diretti con l'app Chat e invia un messaggio:
Apri Google Chat utilizzando l'account Google Workspace che hai fornito quando ti sei aggiunto come tester attendibile.
- Fai clic su Nuova chat.
- Nel campo Aggiungi una o più persone, digita il nome della tua app Chat.
Seleziona l'app di chat dai risultati. Si apre un messaggio diretto.
- Nel nuovo messaggio diretto con l'app, digita
Hello
e premienter
.
Per aggiungere tester attendibili e scoprire di più sui test delle funzionalità interattive, vedi Testare le funzionalità interattive per le app di Google Chat.
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 tua 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 i problemi e correggere gli errori di Google Chat.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, ti consigliamo di eliminare il progetto Cloud.
- Nella console Google Cloud, vai alla pagina Gestisci risorse. Fai clic su Menu > IAM e amministrazione > Gestisci risorse.
- Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina .
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
Argomenti correlati
Per aggiungere altre funzionalità all'app Chat, consulta quanto segue: