Questa pagina spiega come utilizzare l'API Google Workspace Events per creare un'iscrizione a una risorsa Google Workspace. Un abbonamento Google Workspace consente alla tua app di ricevere informazioni sugli eventi di Google Workspace, che rappresentano le modifiche a una risorsa Google Workspace. Per scoprire quali risorse e tipi di eventi supporta l'API Google Workspace Events, consulta la panoramica dell'API Google Workspace Events.
Questa pagina include i seguenti passaggi per creare un abbonamento a Google Workspace:
- Configurare l'ambiente.
- Crea un argomento Google Cloud Pub/Sub e sottoscrivi una sottoscrizione. Utilizzi questo argomento come endpoint per ricevere gli eventi di Google Workspace.
- Chiama il metodo
create
dell'API Google Workspace Events sulla risorsaSubscription
. - Testa l'abbonamento a Google Workspace per verificare che l'argomento Pub/Sub riceva gli eventi a cui hai eseguito la registrazione.
- (Facoltativo) Configura la modalità di push degli eventi a un endpoint per la tua app, in modo che l'app possa elaborare l'evento e, se necessario, intervenire.
Prerequisiti
Apps Script
- Per utilizzare i comandi Google Cloud CLI in questa guida:
- Installa Google Cloud CLI.
- Per
inizializzare la CLI
gcloud
, esegui questo codice:
gcloud init
- Un progetto Google Cloud con la fatturazione abilitata. Per gli abbonamenti a Chat, devi anche attivare l'API Chat nel tuo progetto Cloud e configurare i campi Nome app, URL avatar e Descrizione. Per maggiori dettagli, vedi Creare un'app Google Chat.
- Richiede l'autenticazione dell'utente con la schermata per il consenso OAuth configurata per l'app. Quando configuri la schermata per il consenso, devi specificare un ambito per supportare ogni tipo di evento per l'abbonamento. Per configurare la schermata per il consenso e identificare gli ambiti richiesti, vedi Scegliere gli ambiti.
- Un progetto Apps Script:
- Utilizza il tuo progetto Google Cloud anziché quello predefinito creato automaticamente da Apps Script.
- Per tutti gli ambiti che hai aggiunto per configurare la schermata per il consenso OAuth, devi aggiungere anche gli ambiti al file
appsscript.json
nel tuo progetto Apps Script. Ad esempio: - Attiva
il servizio avanzato
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Python
- Python 3.6 o versioni successive
- Lo strumento di gestione pacchetti pip
- Le librerie client Google più recenti per Python. Per installarli o aggiornarli, esegui il seguente comando nell'interfaccia a riga di comando:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Per utilizzare i comandi Google Cloud CLI in questa guida:
- Installa Google Cloud CLI.
- Per
inizializzare la CLI
gcloud
, esegui questo codice:
gcloud init
- Un progetto Google Cloud con la fatturazione abilitata. Per gli abbonamenti a Chat, devi anche attivare l'API Chat nel tuo progetto Cloud e configurare i campi Nome app, URL avatar e Descrizione. Per maggiori dettagli, vedi Creare un'app Google Chat.
- Richiede l'autenticazione dell'utente con la schermata per il consenso OAuth configurata per l'app. Quando configuri la schermata per il consenso, devi specificare un ambito per supportare ogni tipo di evento per l'abbonamento. Per configurare la schermata per il consenso e identificare gli ambiti richiesti, vedi Scegliere gli ambiti.
Configura l'ambiente
La sezione seguente spiega come configurare l'ambiente prima di creare un abbonamento a Google Workspace.
Abilita l'API Google Workspace Events e l'API Google Cloud Pub/Sub
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.Console Google Cloud
Nella console Google Cloud, apri il progetto Google Cloud per la tua app e attiva l'API Google Workspace Events e l'API Pub/Sub:
gcloud
Nella directory di lavoro, accedi al tuo Account Google:
gcloud auth login
Imposta il progetto sul progetto cloud per la tua app:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_ID
con l'ID progetto del progetto Cloud per la tua app.Abilita l'API Google Workspace Events e l'API Google Cloud Pub/Sub:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
Crea credenziali ID client OAuth
Scegli il tipo di applicazione per istruzioni specifiche su come creare un ID client OAuth:
Applicazione web
- Nella console Google Cloud, vai a Menu > > Client.
- Fai clic su Crea cliente.
- Fai clic su Tipo di applicazione > Applicazione web.
- Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
- Aggiungi gli URI autorizzati correlati alla tua app:
- App lato client (JavaScript): in Origini JavaScript autorizzate, fai clic su Aggiungi URI. Poi, inserisci un URI da utilizzare per le richieste del browser. Identifica i domini da cui la tua applicazione può inviare richieste API al server OAuth 2.0.
- App lato server (Java, Python e altro): in URI di reindirizzamento autorizzati, fai clic su Aggiungi URI. Poi, inserisci un URI dell'endpoint a cui il server OAuth 2.0 può inviare le risposte.
- Fai clic su Crea.
La credenziale appena creata viene visualizzata in ID client OAuth 2.0.
Prendi nota dell'ID client. I client secret non vengono utilizzati per le applicazioni web.
Android
- Nella console Google Cloud, vai a Menu > > Client.
- Fai clic su Crea cliente.
- Fai clic su Tipo di applicazione > Android.
- Nel campo "Nome", digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
- Nel campo "Nome pacchetto", inserisci il nome del pacchetto dal file
AndroidManifest.xml
. - Nel campo "Impronta digitale certificato SHA-1", inserisci l'impronta digitale certificato SHA-1 generata.
- Fai clic su Crea.
La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".
iOS
- Nella console Google Cloud, vai a Menu > > Client.
- Fai clic su Crea cliente.
- Fai clic su Tipo di applicazione > iOS.
- Nel campo "Nome", digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
- Nel campo "ID bundle", inserisci l'identificatore bundle elencato nel file
Info.plist
dell'app. - (Facoltativo) Se la tua app è presente nell'Apple App Store, inserisci l'ID App Store.
- (Facoltativo) Nel campo "ID team", inserisci la stringa univoca composta da 10 caratteri generata da Apple e assegnata al tuo team.
- Fai clic su Crea.
La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".
App Chrome
- Nella console Google Cloud, vai a Menu > > Client.
- Fai clic su Crea cliente.
- Fai clic su Tipo di applicazione > Estensione Chrome.
- Nel campo "Nome", digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
- Nel campo "ID elemento", inserisci la stringa ID univoca di 32 caratteri della tua app. Puoi trovare questo valore ID nell'URL del Chrome Web Store della tua app e nella Dashboard per sviluppatori del Chrome Web Store.
- Fai clic su Crea.
La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".
Applicazione desktop
- Nella console Google Cloud, vai a Menu > > Client.
- Fai clic su Crea cliente.
- Fai clic su Tipo di applicazione > App per computer.
- Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
- Fai clic su Crea.
La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".
TV e dispositivi a input limitato
- Nella console Google Cloud, vai a Menu > > Client.
- Fai clic su Crea cliente.
- Fai clic su Tipo di applicazione > TV e dispositivi di input limitati.
- Nel campo "Nome", digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
- Fai clic su Crea.
La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".
Universal Windows Platform (UWP)
- Nella console Google Cloud, vai a Menu > > Client.
- Fai clic su Crea cliente.
- Fai clic su Tipo di applicazione > Universal Windows Platform (UWP).
- Nel campo "Nome", digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
- Nel campo "ID store", inserisci il valore univoco dell'ID Microsoft Store della tua app, composto da 12 caratteri. Puoi trovare questo ID nell'URL Microsoft Store della tua app e nel Partner Center.
- Fai clic su Crea.
La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".
Scaricare il file JSON del client secret
Il file del client secret è una rappresentazione JSON delle credenziali dell'ID client OAuth a cui la tua app può fare riferimento quando fornisce le credenziali.
Nella console Google Cloud, vai a Menu > API e servizi > Credenziali.
In ID client OAuth 2.0, fai clic sull'ID client che hai creato.
Fai clic su Scarica JSON.
Salva il file come
credentials.json
.
Crea un argomento Pub/Sub e sottoscrivi una sottoscrizione
In questa sezione, crei un argomento Pub/Sub e una sottoscrizione all'argomento. L'argomento Pub/Sub funge da endpoint di notifica in cui l'abbonamento a Google Workspace riceve gli eventi.
Per saperne di più sulla creazione e sulla gestione degli argomenti Pub/Sub, consulta la documentazione di Pub/Sub.
Per creare un argomento Pub/Sub e sottoscriverlo:
Console Google Cloud
Nella console Google Cloud, vai alla pagina Pub/Sub:
Assicurati che sia selezionato il progetto Cloud per la tua app.
Fai clic su
Crea argomento e fai quanto segue:- Inserisci un nome per l'argomento, ad esempio
workspace-events-topic
. - Lascia selezionata l'opzione Aggiungi una sottoscrizione predefinita. Pub/Sub assegna a questa sottoscrizione predefinita un nome simile a quello dell'argomento, ad esempio
workspace-events-topic-sub
. - (Facoltativo) Aggiorna o configura altre proprietà per l'argomento.
- Inserisci un nome per l'argomento, ad esempio
Fai clic su Crea. Il nome completo dell'argomento è formattato come
projects/PROJECT_ID/topics/TOPIC_ID
. Utilizzerai questo nome completo in un passaggio successivo.Concedi l'accesso per pubblicare messaggi Pub/Sub nel tuo argomento:
- Nella pagina dell'argomento, vai al riquadro laterale e apri la scheda Autorizzazioni.
- Fai clic su Aggiungi entità.
- Nel campo Aggiungi entità, aggiungi il service account per l'applicazione Google Workspace che invia eventi al tuo abbonamento:
- Per gli eventi di Chat,
chat-api-push@system.gserviceaccount.com
. - Anteprima per gli sviluppatori: per gli eventi di Drive,
drive-api-event-push@system.gserviceaccount.com
. - Per gli eventi di Meet,
meet-api-event-push@system.gserviceaccount.com
.
- Per gli eventi di Chat,
- Nel menu Assegna i ruoli, seleziona
Pub/Sub Publisher
. - Fai clic su Salva. L'aggiornamento delle autorizzazioni per l'argomento potrebbe richiedere alcuni minuti.
gcloud
Nel tuo progetto Cloud, crea un argomento eseguendo questo comando:
gcloud pubsub topics create TOPIC_ID
Sostituisci
TOPIC_ID
con un ID univoco per l'argomento, ad esempioworkspace-events-topic
.L'output mostra il nome completo dell'argomento, formattato come
projects/PROJECT_ID/topics/TOPIC_ID
. Prendi nota del nome e assicurati che il valore di PROJECT_ID sia l'ID progetto Cloud per la tua app. Utilizzerai il nome dell'argomento nel passaggio successivo e per creare l'abbonamento a Google Workspace in un secondo momento.Concedi l'accesso per pubblicare messaggi nel tuo argomento:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'
Sostituisci quanto segue:
TOPIC_NAME
: il nome completo dell'argomento, ovvero l'output del passaggio precedente. Formattato comeprojects/PROJECT_ID/topics/TOPIC_ID
.GOOGLE_WORKSPACE_APPLICATION
: L'applicazione Google Workspace che deve fornire eventi al tuo abbonamento:- Per ricevere eventi da Chat, utilizza
chat-api-push@system.gserviceaccount.com
. - Anteprima per gli sviluppatori: per ricevere eventi da Drive, utilizza
drive-api-event-push@system.gserviceaccount.com
. - Per ricevere eventi da Meet, utilizza
meet-api-event-push@system.gserviceaccount.com
.
- Per ricevere eventi da Chat, utilizza
L'aggiornamento delle autorizzazioni per l'argomento potrebbe richiedere alcuni minuti.
Crea una sottoscrizione Pub/Sub per l'argomento:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME
Sostituisci quanto segue:
SUBSCRIPTION_NAME
: un nome per l'abbonamento, ad esempioworkspace-events-subscription
.TOPIC_NAME
: il nome dell'argomento creato nel passaggio precedente.
Abbonarsi a una risorsa Google Workspace
In questa sezione, ti abboni alla risorsa Google Workspace che vuoi monitorare per gli eventi.
Scegliere e identificare la risorsa di destinazione
In un abbonamento Google Workspace, la risorsa di destinazione è la
risorsa Google Workspace che monitori per gli eventi. La risorsa
di destinazione è rappresentata nel campo
targetResource
dell'abbonamento, formattato utilizzando il nome completo della risorsa. Ad esempio, per un abbonamento
che monitora uno spazio Google Chat (spaces/AAAABBBBBBB
), il valore di
targetResource
è //chat.googleapis.com/spaces/AAAABBBBBBB
.
Identificare una risorsa di destinazione per Chat
Risorsa di destinazione | Formato | Limitazioni |
---|---|---|
Spazio |
dove SPACE è l'ID nel
nome risorsa della risorsa |
L'utente di Chat che autorizza l'abbonamento deve essere membro dello spazio tramite il proprio account Google Workspace o Google. |
Tutti gli spazi di un utente |
|
L'abbonamento riceve solo gli eventi per gli spazi in cui l'utente è membro tramite il proprio account Google Workspace o Google. |
Utente |
dove USER è l'ID nel
nome risorsa della risorsa |
L'abbonamento riceve solo eventi relativi all'utente che ha autorizzato l'abbonamento. Un utente non può autorizzare un abbonamento per conto di altri utenti. |
Identificare una risorsa di destinazione per Drive
Risorsa di destinazione | Formato | Limitazioni (se applicabile) |
---|---|---|
File |
//drive.googleapis.com/files/FILE
dove FILE è l'ID nel
nome risorsa
della risorsa API Drive |
L'utente che autorizza l'abbonamento deve disporre dell'autorizzazione per il file all'interno dell'abbonamento rispetto all'abbonamento all'evento. |
Drive condiviso |
//drive.googleapis.com/drives/DRIVE
dove DRIVE è l'ID nel
nome della risorsa
della risorsa |
L'abbonamento riceve solo eventi per gli elementi nel Drive condiviso in cui l'utente è membro tramite il proprio account Google Workspace o Account Google. |
Identificare una risorsa di destinazione per Meet
Risorsa di destinazione | Formato | Limitazioni (se applicabile) |
---|---|---|
Spazio per le riunioni | //meet.googleapis.com/spaces/SPACE
dove SPACE è l'ID nel
nome della risorsa della risorsa |
|
Utente | //cloudidentity.googleapis.com/users/USER
dove USER è l'ID nel campo
|
L'abbonamento riceve eventi relativi agli spazi per riunioni in cui l'utente è uno dei seguenti:
|
Creare un abbonamento a Google Workspace
Per creare un abbonamento, utilizza il metodo
subscriptions.create
dell'API Google Workspace Events per creare una risorsa
Subscription
.
Specifica i seguenti campi:
targetResource
: un Google Workspace che hai identificato nella sezione precedente, formattato utilizzando il nome risorsa completo.eventTypes
: Un array di uno o più tipi di eventi che vuoi ricevere sulla risorsa. Ad esempio, se la tua app deve solo conoscere i nuovi messaggi pubblicati in uno spazio Chat, può abbonarsi solo agli eventi relativi ai messaggi creati.notificationEndpoint
: un endpoint di notifica in cui il tuo abbonamento a Google Workspace invia gli eventi. Utilizza l'argomento Pub/Sub che hai creato nella sezione precedente.payloadOptions
: opzioni per specificare la quantità di dati delle risorse da includere nel payload dell'evento. Questa configurazione influisce sul tempo di scadenza dell'abbonamento. Per saperne di più, consulta Dati evento.
Per creare un abbonamento a Google Workspace:
Apps Script
Nel tuo progetto Apps Script, crea un nuovo file di script denominato
createSubscription
e aggiungi il seguente codice:function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }
Sostituisci quanto segue:
TARGET_RESOURCE
: la risorsa Google Workspace a cui ti stai iscrivendo, formattata come nome completo della risorsa. Ad esempio, per abbonarti a uno spazio Google Chat con l'ID spazioAAAABBBB
, utilizza//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: uno o più tipi di eventi a cui vuoi abbonarti nella risorsa di destinazione. Formatta come array di stringhe come'google.workspace.chat.message.v1.created'
.TOPIC_NAME
: il nome completo dell'argomento Pub/Sub che hai creato nel tuo progetto Cloud. Formattato comeprojects/PROJECT_ID/topics/TOPIC_ID
.RESOURCE_DATA
: un valore booleano che specifica se l'abbonamento include i dati delle risorse nel payload:True
: Include tutti i dati delle risorse. Per limitare i campi inclusi, aggiungi il campofieldMask
e specifica almeno un campo per la risorsa modificata. Solo gli abbonamenti alle risorse Chat supportano l'inclusione dei dati delle risorse.False
: Esclude i dati delle risorse.
Per creare l'abbonamento a Google Workspace, esegui la funzione
createSubscription
nel tuo progetto Apps Script.
Python
Nella directory di lavoro, crea un file denominato
create_subscription.py
e aggiungi il seguente codice:"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)
Sostituisci quanto segue:
SCOPES
: uno o più ambiti OAuth che supportano ogni tipo di evento per l'abbonamento. Formattato come array di stringhe. Per elencare più ambiti, separali con le virgole. Ad esempio:'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
.TARGET_RESOURCE
: la risorsa Google Workspace a cui ti stai iscrivendo, formattata come nome completo della risorsa. Ad esempio, per abbonarti a uno spazio Google Chat con l'ID spazioAAAABBBB
, utilizza//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: uno o più tipi di eventi a cui vuoi abbonarti nella risorsa di destinazione. Formatta come array di stringhe come'google.workspace.chat.message.v1.created'
.TOPIC_NAME
: il nome completo dell'argomento Pub/Sub che hai creato nel tuo progetto Cloud. Formattato comeprojects/PROJECT_ID/topics/TOPIC_ID
.RESOURCE_DATA
: un valore booleano che specifica se l'abbonamento include i dati delle risorse nel payload:True
: Include tutti i dati delle risorse. Per limitare i campi inclusi, aggiungi il campofieldMask
e specifica almeno un campo per la risorsa modificata. Solo gli abbonamenti alle risorse Chat supportano l'inclusione dei dati delle risorse.False
: Esclude i dati delle risorse.
Per creare l'abbonamento a Google Workspace, esegui questo comando nel terminale:
python3 create_subscription.py
L'API Google Workspace Events restituisce un'operazione
di lunga durata completata che contiene
l'istanza della risorsa Subscription
che hai creato.
Testare l'abbonamento a Google Workspace
Per verificare di ricevere gli eventi di Google Workspace, puoi attivare un evento ed eseguire il pull dei messaggi nella sottoscrizione Pub/Sub.
Per testare l'abbonamento a Google Workspace:
Console Google Cloud
Attiva uno o più tipi di eventi nella risorsa di destinazione del tuo abbonamento a Google Workspace. Ad esempio, se hai eseguito l'iscrizione ai nuovi messaggi in uno spazio di Chat, pubblica un messaggio nello spazio.
Nella console Google Cloud, vai alla pagina Pub/Sub:
Assicurati che sia selezionato il progetto Cloud per la tua app.
Nel menu Pub/Sub, fai clic su Sottoscrizioni.
Nella tabella, individua l'abbonamento Pub/Sub per l'argomento e fai clic sul nome dell'abbonamento.
Fai clic sulla scheda Messaggi.
Fai clic su Pull. Possono essere necessari alcuni minuti prima che un evento generi un messaggio Pub/Sub.
gcloud
Attiva uno o più tipi di eventi nella risorsa di destinazione del tuo abbonamento a Google Workspace. Ad esempio, se hai eseguito la registrazione per ricevere nuovi messaggi in uno spazio di Chat, pubblica un messaggio nello spazio.
Esegui questo comando:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack
Sostituisci quanto segue:
PUBSUB_SUBSCRIPTION_NAME
: il nome completo dell'abbonamento Pub/Sub, formattato comeprojects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID
.MESSAGE_COUNT
: il numero massimo di messaggi Pub/Sub che vuoi estrarre.
La generazione di un messaggio Pub/Sub da parte di un evento può richiedere fino a qualche minuto.
Per ogni evento Google Workspace attivato, viene inviato un messaggio all'abbonamento Pub/Sub che contiene l'evento. Per maggiori dettagli, vedi Ricevere eventi come messaggi Google Cloud Pub/Sub.
Configurare il modo in cui l'app riceve gli eventi
L'abbonamento Pub/Sub che hai creato è basato sul pull. Dopo aver testato l'abbonamento Pub/Sub, puoi aggiornare il tipo di distribuzione per modificare il modo in cui la tua app riceve gli eventi. Ad esempio, puoi configurare l'abbonamento Pub/Sub con un tipo di distribuzione push, in modo che la tua app possa ricevere eventi direttamente in un endpoint dell'app.
Per informazioni sulla configurazione di una sottoscrizione Pub/Sub, consulta la documentazione di Pub/Sub.