Questa pagina spiega come creare un'app di chat utilizzando Pub/Sub. Questo tipo di architettura per un'app di Chat è utile se la tua organizzazione dispone di un firewall che può impedire a Chat di inviare messaggi all'app o se l'app di Chat utilizza l'API Events di Google Workspace. Tuttavia, questa architettura presenta le seguenti limitazioni dovute al fatto che queste app di chat possono inviare e ricevere solo messaggi asincroni:
- Non è possibile utilizzare le dialoghe 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 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'iscrizione attiva.
Chat invia il messaggio a un argomento Pub/Sub.
Un server 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 della 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 della 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 dei 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 della 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 dei pacchetti npm
-
Un progetto Node.js inizializzato. Per inizializzare un nuovo progetto, crea e
passa a una nuova cartella, quindi esegui il seguente comando nell'interfaccia a riga di comando:
npm init
Configurare l'ambiente
Prima di utilizzare le API 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.
Configura Pub/Sub
Crea un argomento Pub/Sub a cui l'API Chat può inviare messaggi. Ti consigliamo di utilizzare un singolo argomento per app Chat.
Concedere a Chat l'autorizzazione di pubblicazione nell'argomento assegnando il ruolo Publisher Pub/Sub al seguente account di servizio:
chat-api-push@system.gserviceaccount.com
Crea un account di servizio per l'autorizzazione dell'app Chat con Pub/Sub e Chat e salva il file della chiave privata nella tua directory di lavoro.
Crea una sottoscrizione pull all'argomento.
Assegna il ruolo Pub/Sub Subscriber all'abbonamento per l'account di servizio creato in precedenza.
Scrivere lo script
Java
In una CLI, fornisci le credenziali dell'account di servizio:
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 abbonamento per l'abbonamento 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 tua 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 dell'account di servizio:
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 abbonamento per l'abbonamento 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 dell'account di servizio:
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 abbonamento per l'abbonamento 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 in 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 Ricevi messaggi 1:1 e Partecipa a spazi e conversazioni di gruppo.
- In Impostazioni 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 per 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 fornito quando hai aggiunto te stesso come tester attendibile.
- Fai clic su Nuova chat.
- Nel campo Aggiungi 1 o più persone, digita il nome della tua app Chat.
Seleziona l'app Chat dai risultati. Viene visualizzato un messaggio diretto.
- Nel nuovo messaggio diretto con l'app, digita
Hello
e premienter
.
Per aggiungere Trusted Tester e scoprire di più sul test delle funzionalità interattive, consulta Testare le funzionalità interattive per le app Google Chat.
Risoluzione dei problemi
Quando un'app o una scheda di Google Chat 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 Chat o la scheda produce un risultato imprevisto; ad esempio, un messaggio della scheda potrebbe non essere visualizzato.
Sebbene 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 Chat è attivata. Per assistenza su come visualizzare, eseguire il debug e correggere gli errori, consulta la sezione Risolvere 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 il progetto che vuoi eliminare e fai clic su Elimina .
- Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.
Argomenti correlati
Per aggiungere altre funzionalità all'app Chat, consulta quanto segue: