Creare un abbonamento a Google Workspace

Questa pagina spiega come utilizzare l'API Google Workspace Events per creare un abbonamento a una risorsa Google Workspace. Un abbonamento a Google Workspace consente alla tua app di ricevere informazioni sugli eventi di Google Workspace, che rappresentano le modifiche a una risorsa di Google Workspace. Per scoprire quali risorse e tipi di eventi sono supportati dall'API Google Workspace Events, consulta la panoramica dell'API Google Workspace Events.

Questa pagina include i seguenti passaggi per la creazione di un abbonamento a Google Workspace:

  1. Configurare l'ambiente.
  2. Creare e sottoscrivere un argomento Google Cloud Pub/Sub. Utilizza questo documento come endpoint per ricevere gli eventi di Google Workspace.
  3. Chiama il metodo create dell'API Google Workspace Events sulla risorsa Subscription.
  4. Testa l'abbonamento a Google Workspace per verificare che l'argomento Pub/Sub riceva gli eventi a cui hai effettuato l'iscrizione.
  5. Facoltativamente, configura il modo in cui inviare gli eventi a un endpoint per la tua app, in modo che possa elaborarli e, se necessario, intervenire.

Prerequisiti

Apps Script

  • Per utilizzare i comandi di Google Cloud CLI in questa guida:
    1. Installa Google Cloud CLI.
    2. Per inizializzare l'interfaccia a riga di comando gcloud, esegui questo codice:
    3.   gcloud init
        
  • 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 gli ambiti anche al file appsscript.json nel tuo progetto Apps Script. Ad esempio, se hai specificato l'ambito chat.messages, aggiungi quanto segue:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Attiva il servizio avanzato Google Workspace Events.

Python

  • Python 3.6 o versioni successive
  • Lo strumento di gestione dei pacchetti pip
  • Le librerie client di Google più recenti per Python. Per installarli o aggiornarli, esegui questo comando nell'interfaccia a riga di comando:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Per utilizzare i comandi di Google Cloud CLI in questa guida:
    1. Installa Google Cloud CLI.
    2. Per inizializzare l'interfaccia a riga di comando gcloud, esegui questo codice:
    3.   gcloud init
        

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 cloud per la tua app e attiva l'API Google Workspace Events e l'API Pub/Sub:

Abilita le API

gcloud

  1. Nella directory di lavoro, accedi al tuo Account Google:

    gcloud auth login
  2. 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.

  3. Abilita l'API Google Workspace Events e l'API Google Cloud Pub/Sub:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

Crea le credenziali dell'ID client OAuth

Scegli il tipo di applicazione per istruzioni specifiche su come creare un ID client OAuth:

Applicazione web

  1. Nella console Google Cloud, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > Applicazione web.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
  5. Aggiungi gli URI autorizzati relativi 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. In questo modo vengono identificati 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 risposte.
  6. (Facoltativo) Se la tua app è un agente AI che esegue azioni per conto degli utenti, seleziona Utilizza questo client per un agente basato sull'AI. Se la tua app supporta sia i workflow dell'agente AI sia le funzionalità utente standard, crea client OAuth separati per ciascuno. Non puoi modificare questa impostazione dopo aver creato il client.
  7. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in ID client OAuth 2.0.

    Tieni presente che i client secret non vengono utilizzati per le applicazioni web.

Android

  1. Nella console Google Cloud, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > Android.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
  5. Nel campo Nome pacchetto, inserisci il nome del pacchetto dal file AndroidManifest.xml.
  6. Nel campo Fingerprint del certificato SHA-1, inserisci il fingerprint del certificato SHA-1 generato.
  7. (Facoltativo) Se la tua app è un agente AI che esegue azioni per conto degli utenti, seleziona Utilizza questo client per un agente basato sull'AI. Se la tua app supporta sia i workflow dell'agente AI sia le funzionalità utente standard, crea client OAuth separati per ciascuno. Non puoi modificare questa impostazione dopo aver creato il client.
  8. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

iOS

  1. Nella console Google Cloud, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > iOS.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
  5. Nel campo ID pacchetto, inserisci l'identificatore pacchetto elencato nel file Info.plist dell'app.
  6. (Facoltativo) Se la tua app è presente nell'App Store di Apple, inserisci l'ID App Store.
  7. (Facoltativo) Nel campo ID team, inserisci la stringa univoca di 10 caratteri generata da Apple e assegnata al tuo team.
  8. (Facoltativo) Se la tua app è un agente AI che esegue azioni per conto degli utenti, seleziona Utilizza questo client per un agente basato sull'AI. Se la tua app supporta sia i workflow dell'agente AI sia le funzionalità utente standard, crea client OAuth separati per ciascuno. Non puoi modificare questa impostazione dopo aver creato il client.
  9. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

App Chrome

  1. Nella console Google Cloud, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > Estensione di Chrome.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
  5. Nel campo ID articolo, 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.
  6. (Facoltativo) Se la tua app è un agente AI che esegue azioni per conto degli utenti, seleziona Utilizza questo client per un agente basato sull'AI. Se la tua app supporta sia i workflow dell'agente AI sia le funzionalità utente standard, crea client OAuth separati per ciascuno. Non puoi modificare questa impostazione dopo aver creato il client.
  7. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

App desktop

  1. Nella console Google Cloud, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > App desktop.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
  5. (Facoltativo) Se la tua app è un agente AI che esegue azioni per conto degli utenti, seleziona Utilizza questo client per un agente basato sull'AI. Se la tua app supporta sia i workflow dell'agente AI sia le funzionalità utente standard, crea client OAuth separati per ciascuno. Non puoi modificare questa impostazione dopo aver creato il client.
  6. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

TV e dispositivi a input limitato

  1. Nella console Google Cloud, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > TV e dispositivi di input limitato.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
  5. (Facoltativo) Se la tua app è un agente AI che esegue azioni per conto degli utenti, seleziona Utilizza questo client per un agente basato sull'AI. Se la tua app supporta sia i workflow dell'agente AI sia le funzionalità utente standard, crea client OAuth separati per ciascuno. Non puoi modificare questa impostazione dopo aver creato il client.
  6. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

Universal Windows Platform (UWP)

  1. Nella console API di Google, vai a Menu > > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > Universal Windows Platform (UWP).
  4. Nel campo "Nome", digita un nome per la credenziale. Questo nome viene visualizzato solo nella console API di Google.
  5. Nel campo "ID store", inserisci il valore univoco dell'ID Microsoft Store di 12 caratteri della tua app. Puoi trovare questo ID nell'URL del Microsoft Store della tua app e nel Partner Center.
  6. (Facoltativo) Se la tua app è un agente AI che esegue azioni per conto degli utenti, seleziona Utilizza questo client per un agente basato sull'AI. Se la tua app supporta sia i workflow dell'agente AI sia le funzionalità utente standard, crea client OAuth separati per ciascuno. Non puoi modificare questa impostazione dopo aver creato il client.
  7. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

Scarica 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.

  1. Nella console API di Google, vai a Menu > API e servizi > Credenziali.

    Vai a credenziali

  2. In ID client OAuth 2.0, fai clic sull'ID client che hai creato.

  3. Fai clic su Scarica JSON.

  4. Salva il file come credentials.json.

Crea e sottoscrivi un argomento Pub/Sub

In questa sezione creerai un argomento Pub/Sub e una sottoscrizione all'argomento. L'argomento Pub/Sub funge da endpoint di notifica in cui la tua sottoscrizione a Google Workspace riceve gli eventi.

Per scoprire di più sulla creazione e sulla gestione degli argomenti Pub/Sub, consulta la documentazione di Pub/Sub.

Per creare un argomento Pub/Sub e iscriverti:

Console API di Google

  1. Nella console API di Google, vai alla pagina Pub/Sub:

    Vai a Google Cloud Pub/Sub

    Assicurati che il progetto Cloud per la tua app sia selezionato.

  2. Fai clic su Crea argomento e segui questi passaggi:

    1. Inserisci un nome per l'argomento, ad esempio workspace-events-topic.
    2. 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.
    3. (Facoltativo) Aggiorna o configura altre proprietà per l'argomento.
  3. Fai clic su Crea. Il nome completo dell'argomento è formattato come projects/PROJECT_ID/topics/TOPIC_ID. Utilizza questo nome completo in un passaggio successivo.

  4. Concedi l'accesso per pubblicare messaggi Pub/Sub nel tuo argomento:

    1. Nella pagina dell'argomento, vai al riquadro laterale e apri la scheda Autorizzazioni.
    2. Fai clic su Aggiungi entità.
    3. Nel campo Aggiungi entità, aggiungi il service account per l'applicazione Google Workspace che invia gli eventi alla tua sottoscrizione:
      1. Per gli eventi di Chat, chat-api-push@system.gserviceaccount.com.
      2. Per gli eventi di Drive, drive-api-event-push@system.gserviceaccount.com.
      3. Per gli eventi di Meet, meet-api-event-push@system.gserviceaccount.com.
    4. Nel menu Assegna i ruoli, seleziona Pub/Sub Publisher.
    5. Fai clic su Salva. L'aggiornamento delle autorizzazioni per l'argomento può richiedere alcuni minuti.

gcloud

  1. 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 esempio workspace-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 della tua app. Utilizza il nome dell'argomento nel passaggio successivo e per creare l'abbonamento a Google Workspace in un secondo momento.

  2. 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, che è l'output del passaggio precedente. Formattato come projects/PROJECT_ID/topics/TOPIC_ID.
    • GOOGLE_WORKSPACE_APPLICATION: l'applicazione Google Workspace che deve inviare eventi alla tua sottoscrizione:

      • Per ricevere eventi da Chat, utilizza uno dei seguenti service account:
      • 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.

    L'aggiornamento delle autorizzazioni per l'argomento può richiedere alcuni minuti.

  3. 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 la sottoscrizione, ad esempio workspace-events-subscription.
    • TOPIC_NAME: il nome dell'argomento creato nel passaggio precedente.

Iscriviti a una risorsa di Google Workspace

In questa sezione, ti iscrivi alla risorsa Google Workspace che vuoi monitorare per gli eventi.

Scegli e identifica la risorsa di destinazione

In un abbonamento a Google Workspace, la risorsa di destinazione è la risorsa Google Workspace che monitori per gli eventi. La risorsa di destinazione è rappresentata nel campo targetResource della sottoscrizione, formattato utilizzando il nome completo della risorsa. Ad esempio, per un abbonamento che monitora uno spazio di Chat (spaces/AAAABBBBBBB), il valore di targetResource è //chat.googleapis.com/spaces/AAAABBBBBBB.

Identifica una risorsa di destinazione per Chat

Risorsa di destinazione Formato Limitazioni
Spazio

//chat.googleapis.com/spaces/SPACE

dove SPACE è l'ID nel nome della risorsa della risorsa space dell'API Chat. Puoi ottenere l'ID dall'URL dello spazio o utilizzando il metodo spaces.list().

L'utente o l'app di Chat che autorizza l'abbonamento deve essere un membro dello spazio tramite il proprio Account Google o Google Workspace. Supporta:
Tutti gli spazi per un utente

//chat.googleapis.com/spaces/-

L'abbonamento riceve solo gli eventi per gli spazi di cui l'utente è membro tramite il proprio Account Google o Google Workspace. Supporta solo l'autenticazione utente.
Utente

//cloudidentity.googleapis.com/users/USER

dove USER è l'ID nel nome della risorsa della risorsa user dell'API Chat. Per maggiori dettagli, consulta Identifica e specifica gli utenti di Google Chat.

L'abbonamento riceve solo gli eventi relativi all'utente che ha autorizzato l'abbonamento. Un utente non può autorizzare un abbonamento per conto di altri utenti. Supporta solo l'autenticazione utente.

Cliente ( Anteprima per gli sviluppatori)

//admin.googleapis.com/customers/CUSTOMER

dove CUSTOMER è l'ID cliente. Puoi anche utilizzare l'alias my_customer per il dominio personalizzato dell'app di Chat.

L'abbonamento riceve gli eventi per tutti gli spazi e gli utenti gestiti dal dominio del cliente. Supporta solo l'autenticazione delle app con l'approvazione dell'amministratore.

Identifica una risorsa di destinazione per Drive

Risorsa di destinazione Formato Limitations (if applicable)
File //drive.googleapis.com/files/FILE

dove FILE è l'ID nel nome della risorsa della risorsa files dell'API Drive. Puoi ottenere l'ID dall'URL del file o utilizzando il metodo files.list.

L'utente che autorizza la sottoscrizione deve disporre dell'autorizzazione per il file all'interno della sottoscrizione relativa all'evento di sottoscrizione.
Drive condiviso //drive.googleapis.com/drives/DRIVE

dove DRIVE è l'ID nel nome della risorsa della risorsa drives dell'API Drive. Puoi ottenere l'ID dall'URL del Drive o utilizzando il metodo drives.list.

L'abbonamento riceve solo gli eventi per gli elementi del Drive condiviso di cui l'utente è membro tramite il proprio account Google Workspace o Account Google.

Identifica una risorsa di destinazione per Meet

Risorsa di destinazione Formato Limitations (if applicable)
Spazio per le riunioni //meet.googleapis.com/spaces/SPACE

dove SPACE è l'ID nel nome della risorsa della risorsa spaces dell'API REST di Meet. Per maggiori dettagli, vedi In che modo Meet identifica uno spazio per riunioni.

Utente //cloudidentity.googleapis.com/users/USER

dove USER è l'ID nel campo signedinUser.user della risorsa participants dell'API REST di Meet. Per maggiori dettagli, vedi Lavora con i partecipanti.

L'abbonamento riceve eventi relativi a tutti gli spazi riunione di cui l'utente è proprietario. In genere, il proprietario dello spazio della riunione è anche l'organizzatore dell'evento di Google Calendar associato allo spazio della riunione.

Crea 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'istanza di Google Workspace identificata nella sezione precedente, formattata utilizzando il nome completo della risorsa.
  • eventTypes: un array di uno o più tipi di eventi che vuoi ricevere in relazione alla risorsa. Ad esempio, se la tua app deve solo sapere quando vengono pubblicati nuovi messaggi in uno spazio di Chat, può semplicemente iscriversi 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 sulla data di scadenza della tua sottoscrizione. Per saperne di più, consulta Dati sugli eventi.

Per creare un abbonamento a Google Workspace:

Apps Script

  1. Nel 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 con il nome completo della risorsa. Ad esempio, per iscriverti a uno spazio di Chat con l'ID spazio AAAABBBB, utilizza //chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: uno o più tipi di eventi a cui vuoi iscriverti nella risorsa di destinazione. Formato come array di stringhe, ad esempio 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: il nome completo dell'argomento Pub/Sub che hai creato nel tuo progetto Cloud. Formattato come projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: un valore booleano che specifica se la sottoscrizione include i dati della risorsa nel payload:

      • True: include tutti i dati delle risorse. Per limitare i campi inclusi, aggiungi il campo fieldMask e specifica almeno un campo per la risorsa modificata. Solo gli abbonamenti alle risorse di Chat supportano l'inclusione dei dati delle risorse.
      • False: esclude i dati delle risorse.
  2. Per creare l'abbonamento a Google Workspace, esegui la funzione createSubscription nel tuo progetto Apps Script.

Python

  1. 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 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 con il nome completo della risorsa. Ad esempio, per iscriverti a uno spazio di Chat con l'ID spazio AAAABBBB, utilizza //chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: uno o più tipi di eventi a cui vuoi iscriverti nella risorsa di destinazione. Formato come array di stringhe, ad esempio 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: il nome completo dell'argomento Pub/Sub che hai creato nel tuo progetto Cloud. Formattato come projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: un valore booleano che specifica se la sottoscrizione include i dati della risorsa nel payload:

      • True: include tutti i dati delle risorse. Per limitare i campi inclusi, aggiungi il campo fieldMask e specifica almeno un campo per la risorsa modificata. Solo gli abbonamenti alle risorse di Chat supportano l'inclusione dei dati delle risorse.
      • False: esclude i dati delle risorse.
  2. 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.

Testa il tuo abbonamento a Google Workspace

Per verificare che ricevi 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 API di Google

  1. Attiva uno o più tipi di eventi nella risorsa di destinazione del tuo abbonamento a Google Workspace. Ad esempio, se hai effettuato l'iscrizione ai nuovi messaggi in uno spazio di Chat, pubblica un messaggio nello spazio.

  2. Nella console API di Google, vai alla pagina Pub/Sub:

    Vai a Pub/Sub.

    Assicurati che il progetto Cloud per la tua app sia selezionato.

  3. Nel menu Pub/Sub, fai clic su Sottoscrizioni.

  4. Nella tabella, individua la sottoscrizione Pub/Sub per l'argomento e fai clic sul nome della sottoscrizione.

  5. Fai clic sulla scheda Messaggi.

  6. Fai clic su Pull. La generazione di un messaggio Pub/Sub da parte di un evento può richiedere alcuni minuti.

gcloud

  1. Attivare uno o più tipi di eventi nella risorsa di destinazione del tuo abbonamento a Google Workspace. Ad esempio, se hai effettuato l'iscrizione ai nuovi messaggi in uno spazio di Chat, pubblica un messaggio nello spazio.

  2. 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 della tua sottoscrizione Pub/Sub, formattato come projects/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 che hai attivato, viene recapitato un messaggio alla tua sottoscrizione Pub/Sub contenente l'evento. Per maggiori dettagli, consulta Ricezione di eventi come messaggi Google Cloud Pub/Sub.

Configura il modo in cui la tua app riceve gli eventi

La sottoscrizione Pub/Sub che hai creato è basata su pull. Dopo aver testato la tua sottoscrizione Pub/Sub, puoi aggiornare il tipo di invio per modificare il modo in cui la tua app riceve gli eventi. Ad esempio, puoi configurare la sottoscrizione Pub/Sub in modo che utilizzi un tipo di invio push, in modo che la tua app possa ricevere gli eventi direttamente in un endpoint dell'app.

Per scoprire come configurare una sottoscrizione Pub/Sub, consulta la documentazione di Pub/Sub.

Iscriviti agli eventi dello spazio di Chat come app Google Chat

Puoi iscriverti agli eventi di Chat come app di Chat da uno spazio di cui l'app di Chat è membro. Le app di Chat non possono iscriversi agli eventi utente.

Scrivi uno script che chiami l'API Google Workspace Events

Ecco come creare un abbonamento agli eventi dello spazio di Chat con l'autenticazione dell'app e l'approvazione dell'amministratore:

  1. Se necessario, crea un'app di Chat.
  2. Iscriviti a una risorsa di Chat, ma:

    1. Anziché l'autenticazione utente, esegui l'autenticazione come app di Chat con l'approvazione una tantum dell'amministratore.
    2. Specifica gli ambiti di autorizzazione che consentono all'app di Chat di iscriversi agli eventi di Chat. Questi ambiti di autorizzazione iniziano sempre con chat.app e includono:

      • https://www.googleapis.com/auth/chat.app.memberships: iscriviti agli eventi dei membri dello spazio di Chat.
      • https://www.googleapis.com/auth/chat.app.memberships.readonly: iscriviti agli eventi dei membri dello spazio di Chat.
      • https://www.googleapis.com/auth/chat.app.messages.readonly: iscriviti agli eventi relativi ai messaggi e alle reazioni dello spazio di Chat.
      • https://www.googleapis.com/auth/chat.app.spaces: iscriviti agli eventi dello spazio di Chat.
      • https://www.googleapis.com/auth/chat.app.spaces.readonly: iscriviti agli eventi dello spazio di Chat.

Il seguente esempio di codice si iscrive agli eventi dei messaggi in uno spazio Chat specificato:

Python

  """Create subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # The Google Workspace resource to monitor for events.
  TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'

  # The types of events to receive.
  EVENT_TYPES = [
                  'google.workspace.chat.message.v1.created',
                  'google.workspace.chat.message.v1.updated',
                  'google.workspace.chat.message.v1.deleted',
                ]

  # 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:

  • SPACE_ID: il nome dello spazio, che puoi ottenere dal metodo spaces.list nell'API Chat o dall'URL di uno spazio.
  • TOPIC_NAME: il nome completo dell'argomento Pub/Sub che hai creato nel tuo progetto Cloud. Formattato come projects/PROJECT_ID/topics/TOPIC_ID.
  • RESOURCE_DATA: un valore booleano che specifica se la sottoscrizione include i dati della risorsa nel payload:

    • True: include tutti i dati delle risorse. Per limitare i campi inclusi, aggiungi il campo fieldMask e specifica almeno un campo per la risorsa modificata. Solo gli abbonamenti alle risorse di Chat supportano l'inclusione dei dati delle risorse.
    • False: esclude i dati delle risorse.

Iscriviti a tutti gli eventi di Chat in un'organizzazione Google Workspace come app Google Chat

Un abbonamento cliente consente alla tua app di Chat di monitorare gli eventi relativi agli spazi e agli utenti in un'intera organizzazione Google Workspace.

Per maggiori dettagli su come vengono recapitati gli eventi per gli abbonamenti dei clienti, incluso il recapito degli eventi negli spazi gestiti da organizzazioni esterne, consulta Limitazioni e comportamenti di recapito degli abbonamenti dei clienti.

Requisiti e limitazioni

  • Autenticazione: Autenticati come app di Chat con l'approvazione una tantum dell'amministratore
  • SKU: l'organizzazione Google Workspace deve avere almeno una licenza SKU Enterprise. Tieni presente che questo requisito non viene applicato rigorosamente durante la fase del programma Anteprima per gli sviluppatori, ma verrà applicato in futuro (annuncio separato).
  • Unicità: un'app di Chat può creare un solo abbonamento cliente per una determinata organizzazione Google Workspace. Un'organizzazione Google Workspace può avere fino a cinque abbonamenti cliente in totale (creati da diverse app di Chat).
  • Ambiti: richiede uno o più dei seguenti ambiti, a seconda dei tipi di eventi che vuoi ricevere:
    • https://www.googleapis.com/auth/chat.app.all.spaces.readonly: per ricevere eventi relativi agli spazi.
    • https://www.googleapis.com/auth/chat.app.all.memberships.readonly: per ricevere eventi relativi agli abbonamenti.
    • https://www.googleapis.com/auth/chat.app.all.messages.readonly: per ricevere eventi relativi a messaggi e reazioni.
    • https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly ( Anteprima per gli sviluppatori): per ricevere eventi relativi agli stati di lettura degli utenti.

Crea un abbonamento per un cliente

Per creare un abbonamento per un cliente, chiama il metodo subscriptions.create.

Il seguente esempio di codice Python crea un abbonamento di un cliente:

Python

"""Create a customer subscription."""

from google.oauth2 import service_account
from apiclient.discovery import build

# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']

# Specify service account details.
CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
)

# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_ID'

# The types of events to receive.
EVENT_TYPES = [
    'google.workspace.chat.message.v1.created',
    'google.workspace.chat.message.v1.updated',
    'google.workspace.chat.message.v1.deleted',
]

# The endpoint to deliver events to.
TOPIC = 'TOPIC_NAME'

# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
service = build(
    'workspaceevents',
    'v1beta',
    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:

  • CUSTOMER_ID: l'ID cliente. Puoi anche utilizzare l'alias my_customer per l'organizzazione Google Workspace dell'app di Chat.
  • TOPIC_NAME: il nome completo dell'argomento Pub/Sub che hai creato nel tuo progetto Cloud. Formattato come projects/PROJECT_ID/topics/TOPIC_ID.
  • RESOURCE_DATA: un valore booleano che specifica se la sottoscrizione include i dati della risorsa nel payload:
    • True: include tutti i dati delle risorse. Per limitare i campi inclusi, aggiungi il campo fieldMask e specifica almeno un campo per la risorsa modificata. Solo gli abbonamenti alle risorse di Chat supportano l'inclusione dei dati delle risorse.
    • False: esclude i dati delle risorse.