Iscriviti agli eventi di Google Chat

Questa pagina descrive gli eventi di Google Chat a cui un'app Google Chat può iscriversi utilizzando l'API Google Workspace Events. Dopo aver deciso quali tipi di eventi ti servono, crea un abbonamento per iniziare a ricevere eventi da Google Chat.

Oltre a iscriverti agli eventi, puoi anche eseguire query sugli eventi chiamando l'API Chat. La chiamata all'API Chat ti consente di recuperare gli eventi periodicamente o di recuperare gli eventi che potresti aver perso da un abbonamento a causa di un'interruzione. Per scoprire i modi in cui puoi ricevere e rispondere agli eventi di Chat, consulta Utilizzare gli eventi di Google Chat nella documentazione di Chat.

Eventi di Chat supportati

Gli abbonamenti a Google Workspace ti consentono di ricevere eventi relativi ai seguenti tipi di modifiche in Chat:

  • Messaggi nuovi, aggiornati o eliminati nello spazio.
  • Nuove reazioni o reazioni rimosse a un messaggio.
  • Membri nuovi, aggiornati o rimossi nello spazio.
  • Modifiche allo spazio a cui hai eseguito l'iscrizione, ad esempio un nome o una descrizione dello spazio aggiornati.

Risorse che puoi monitorare per gli eventi

Per ricevere eventi, devi specificare una risorsa Chat da monitorare, che viene chiamata risorsa di destinazione dell'abbonamento.

L'API Google Workspace Events supporta le seguenti risorse di destinazione per Chat:

Risorsa di destinazione Formato Limitazioni
Spazio

//chat.googleapis.com/spaces/SPACE

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

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

//chat.googleapis.com/spaces/-

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

//cloudidentity.googleapis.com/users/USER

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

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. Supporta solo l'autenticazione utente.

Tipi di eventi per la creazione di abbonamenti

Quando crei un abbonamento, utilizzi il campo eventTypes[] per specificare i tipi di eventi che vuoi ricevere. I tipi di evento sono formattati in base alla specifica CloudEvents, ad esempio google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Ad esempio, per ricevere eventi sugli utenti che partecipano a uno spazio di Chat, specifica lo spazio come risorsa di destinazione e il tipo di evento come google.workspace.chat.membership.v1.created. Per ricevere eventi relativi a un determinato utente che entra in uno spazio, specifica l'utente come risorsa di destinazione e il tipo di evento come google.workspace.chat.membership.v1.created. Per scoprire di più su come funzionano gli eventi, consulta Struttura degli eventi di Google Workspace.

La tabella seguente mostra i tipi di eventi supportati per gli abbonamenti agli spazi e agli utenti. Per informazioni sulle eccezioni relative a ciò che attiva un evento, consulta Limitazioni.

Tipo di evento Formato Dati delle risorse
Iscrizioni agli spazi  
Viene pubblicato un messaggio.

google.workspace.chat.message.v1.created

space.message

Un messaggio viene aggiornato.

google.workspace.chat.message.v1.updated

space.message

Un messaggio viene eliminato.

google.workspace.chat.message.v1.deleted

space.message

Viene creata una reazione.

google.workspace.chat.reaction.v1.created

space.message.reaction

Una reazione viene eliminata.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Un membro viene aggiunto allo spazio.

google.workspace.chat.membership.v1.created

space.membership

Un membro viene aggiornato nello spazio.

google.workspace.chat.membership.v1.updated

space.membership

Un membro viene rimosso dallo spazio.

google.workspace.chat.membership.v1.deleted

space.membership

Lo spazio viene aggiornato.

google.workspace.chat.space.v1.updated

space

Lo spazio viene eliminato.

google.workspace.chat.space.v1.deleted

space

Iscrizioni agli utenti  
L'utente diventa membro di uno spazio.

Non tutti i nuovi membri attivano eventi. Per i dettagli, vedi Limitazioni.

google.workspace.chat.membership.v1.created

space.membership

L'iscrizione dell'utente a uno spazio viene aggiornata.

google.workspace.chat.membership.v1.updated

space.membership

L'utente viene rimosso come membro diretto di uno spazio.

google.workspace.chat.membership.v1.deleted

space.membership

Tipi di eventi batch (solo output)

Oltre a ricevere i tipi di eventi a cui ti iscrivi, la tua app di chat potrebbe ricevere anche eventi batch. Un evento batch è un evento che rappresenta molti eventi dello stesso tipo che si verificano in un breve periodo di tempo. Il payload di un evento batch contiene un elenco di tutte le risorse modificate.

Ad esempio, se un utente aggiunge 20 utenti a uno spazio contemporaneamente, la tua app Chat potrebbe ricevere un evento batch (google.workspace.chat.membership.v1.batchCreated). Il payload dell'evento contiene un elenco di tutte le nuove risorse Membership create quando l'utente ha aggiunto i membri allo spazio.

Ricevi un evento batch per qualsiasi tipo di evento a cui ti iscrivi, quindi non devi specificare gli eventi batch quando crei un abbonamento. Ad esempio, se ti abboni a nuove reazioni (google.workspace.chat.reaction.v1.created), la tua app Chat viene configurata automaticamente per ricevere eventi di reazione batch (google.workspace.chat.reaction.v1.batchCreated).

La tabella seguente mostra i possibili eventi batch per un abbonamento:

Tipo di evento batch Formato
Vengono pubblicati più messaggi.

google.workspace.chat.message.v1.batchCreated

Vengono aggiornati più messaggi.

google.workspace.chat.message.v1.batchUpdated

Vengono eliminati più messaggi.

google.workspace.chat.message.v1.batchDeleted

Vengono create più reazioni.

google.workspace.chat.reaction.v1.batchCreated

Vengono eliminate più reazioni.

google.workspace.chat.reaction.v1.batchDeleted

Più membri vengono aggiunti allo spazio a cui è stato eseguito l'abbonamento oppure l'utente abbonato è stato aggiunto a più spazi.

google.workspace.chat.membership.v1.batchCreated

Più abbonamenti vengono aggiornati nello spazio a cui è stato eseguito l'abbonamento o per l'utente abbonato.

google.workspace.chat.membership.v1.batchUpdated

Più membri vengono rimossi dallo spazio a cui è stato effettuato l'abbonamento oppure l'utente abbonato è stato rimosso da più spazi.

google.workspace.chat.membership.v1.batchDeleted

Lo spazio ha più aggiornamenti.

google.workspace.chat.space.v1.batchUpdated

Dati sugli eventi

Questa sezione descrive i dati degli eventi e i payload di esempio per gli eventi in Chat.

Quando il tuo abbonamento a Google Workspace riceve un evento da Chat, il campo data contiene il payload dell'evento. Questo payload contiene informazioni sulla risorsa Google Workspace modificata. Ad esempio, se hai eseguito l'iscrizione agli eventi di iscrizione in uno spazio, il payload di questi eventi contiene informazioni sulla risorsa spaces.membership che è stata modificata.

Dati delle risorse nel payload dell'evento

Quando crei un abbonamento, puoi specificare se vuoi che il payload includa i dettagli della risorsa o solo il nome. Ad esempio, se vuoi ricevere eventi relativi ai membri di uno spazio Chat, puoi specificare i campi di una risorsa di appartenenza che vuoi ricevere nel payload dell'evento.

La seguente tabella fornisce esempi di payload JSON per un abbonamento allo spazio di Chat spaces/AAAABBBBBB. Per ogni evento ricevuto dall'abbonamento, il payload viene visualizzato nel campo data dell'evento:

Esempio Tipo di evento Payload JSON

Un utente pubblica un messaggio nello spazio che dice "Hello world".

google.workspace.chat.message.v1.created

Include i dati delle risorse:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID",
        "sender":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/SPACE_ID/threads/THREAD_ID"
        },
        "space":
        {
            "name": "spaces/SPACE_ID"
        },
        "argumentText": "Hello world"
    }
}
      

Esclude i dati delle risorse:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Un utente diventa gestore dello spazio.

google.workspace.chat.membership.v1.updated

Include i dati delle risorse:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID",
        "state": "JOINED",
        "member":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      

Esclude i dati delle risorse:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
Un utente aggiorna la descrizione dello spazio in "Team di vendita di Cymbal Labs". google.workspace.chat.space.v1.updated

Include i dati delle risorse:

{
    "space":
    {
        "name": "spaces/SPACE_ID",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      

Esclude i dati delle risorse:

{
    "space":
    {
        "name": "spaces/SPACE_ID"
    }
}
      
Due utenti di Chat sono stati aggiunti allo spazio contemporaneamente. google.workspace.chat.membership.v1.batchCreated

Include i dati delle risorse:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      

Esclude i dati delle risorse:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Un utente reagisce a un messaggio con l'emoji 😊. google.workspace.chat.reaction.v1.created

Include i dati delle risorse:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        "user":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      

Esclude i dati delle risorse:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
Gli utenti reagiscono a un messaggio con le emoji 😊 e 😸. google.workspace.chat.reaction.v1.batchCreated

Include i dati delle risorse:

{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      

Esclude i dati delle risorse:

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      

Limitazioni

  • Per gli abbonamenti agli utenti, gli eventi relativi ai nuovi membri nei messaggi diretti o nelle chat di gruppo senza nome (google.workspace.chat.membership.v1.created), vengono attivati solo dopo la pubblicazione del primo messaggio.
  • Per ricevere eventi di appartenenza, l'utente o l'app Chat deve essere un membro diretto dello spazio. Se sono stati aggiunti, aggiornati o rimossi indirettamente da uno spazio tramite un gruppo Google, l'abbonamento non riceve questi eventi di appartenenza. Per capire come funzionano le iscrizioni ai gruppi Google, consulta la sezione Aggiungere un gruppo Google a uno spazio.