Subskrybowanie wydarzeń w Google Chat

Na tej stronie opisujemy zdarzenia w Google Chat, które aplikacja Google Chat może subskrybować przy użyciu interfejsu Google Workspace Event API. Gdy określisz, jakiego typu zdarzenia potrzebujesz, utwórz subskrypcję, aby zacząć otrzymywać zdarzenia z Google Chat.

Oprócz subskrypcji zdarzeń możesz też wysyłać zapytania o zdarzenia, wywołując interfejs Chat API. Wywoływanie interfejsu Chat API umożliwia okresowe pobieranie zdarzeń lub przeglądanie zdarzeń, które mogły umknąć Twojej subskrypcji z powodu przerwy w dostępie do usługi. Więcej informacji o sposobach odbierania zdarzeń z Google Chat i odpowiadania na nie znajdziesz w sekcji Praca z wydarzeniami z Google Chat w dokumentacji tej usługi.

Obsługiwane zasoby docelowe Google Chat

Interfejs Google Workspace Event API obsługuje subskrypcje w tych celach:

  • Pokoje widoczne jako zasoby space
  • Użytkownicy reprezentujący zasoby user interfejsu Cloud Identity API

Obsługiwane zdarzenia Google Chat

Subskrypcje Google Workspace pozwalają otrzymywać zdarzenia dotyczące następujących typów zmian w Google Chat:

  • Nowe, zaktualizowane lub usunięte wiadomości w pokoju.
  • Nowe lub usunięte reakcje na wiadomość.
  • Nowi, zaktualizowani lub usunięci członkowie pokoju.
  • zmian w pokoju, który subskrybujesz, np. zaktualizowanej nazwy lub opisu pokoju;

Typy zdarzeń, które umożliwiają tworzenie subskrypcji

Podczas tworzenia subskrypcji pole eventTypes[] pozwala określić typy zdarzeń, które chcesz otrzymywać. Typy zdarzeń są formatowane zgodnie ze specyfikacją CloudEvents, np. google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Aby na przykład otrzymywać zdarzenia dotyczące użytkowników dołączających do pokoju czatu, określ pokój jako zasób docelowy, a jako typ zdarzenia określ google.workspace.chat.membership.v1.created. Aby otrzymywać zdarzenia dotyczące danego użytkownika dołączającego do dowolnego pokoju, określ go jako zasób docelowy, a jako typ zdarzenia ustaw google.workspace.chat.membership.v1.created. Więcej informacji o tym, jak działają zdarzenia, znajdziesz w artykule Struktura zdarzeń Google Workspace.

W tabeli poniżej znajdziesz informacje o tym, które typy zdarzeń są obsługiwane w przypadku subskrypcji pokoi i subskrypcji użytkowników. Informacje o wyjątkach wywołujących zdarzenie znajdziesz w sekcji Ograniczenia.

Typ zdarzenia Format Dane zasobu
Subskrypcje pokoi  
Wiadomość została opublikowana.

google.workspace.chat.message.v1.created

space.message

Zaktualizowano wiadomość.

google.workspace.chat.message.v1.updated

space.message

Wiadomość została usunięta.

google.workspace.chat.message.v1.deleted

space.message

Tworzona jest reakcja.

google.workspace.chat.reaction.v1.created

space.message.reaction

Reakcja została usunięta.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Do pokoju zostanie dodany użytkownik.

google.workspace.chat.membership.v1.created

space.membership

Użytkownik zostanie zaktualizowany w pokoju.

google.workspace.chat.membership.v1.updated

space.membership

Użytkownik zostanie usunięty z pokoju.

google.workspace.chat.membership.v1.deleted

space.membership

Pokój zostanie zaktualizowany.

google.workspace.chat.space.v1.updated

space

Pokój został usunięty.

google.workspace.chat.space.v1.deleted

space

Subskrypcje użytkowników  
Użytkownik staje się członkiem pokoju.

Nie wszystkie nowe osoby wywołują zdarzenia. Więcej informacji znajdziesz w sekcji Ograniczenia.

google.workspace.chat.membership.v1.created

space.membership

Subskrypcja użytkownika w pokoju zostanie zaktualizowana.

google.workspace.chat.membership.v1.updated

space.membership

Użytkownik zostanie usunięty z pokoju jako bezpośredni użytkownik.

google.workspace.chat.membership.v1.deleted

space.membership

Typy zdarzeń zbiorczych (tylko dane wyjściowe)

Oprócz zasubskrybowanych typów zdarzeń aplikacja Google Chat może też otrzymywać zdarzenia zbiorcze. Zdarzenie zbiorcze to zdarzenie reprezentujące wiele zdarzeń tego samego typu, które wystąpiły w krótkim czasie. Ładunek zdarzenia wsadowego zawiera listę wszystkich zmienionych zasobów.

Jeśli na przykład użytkownik doda do pokoju 20 użytkowników jednocześnie, aplikacja Google Chat może otrzymać zdarzenie zbiorcze (google.workspace.chat.membership.v1.batchCreated). Ładunek zdarzenia będzie zawierać listę wszystkich nowych zasobów Membership, które zostały utworzone, gdy użytkownik dodał użytkowników do pokoju.

Otrzymasz zdarzenie wsadowe dla każdego subskrybowanego typu zdarzenia, więc nie musisz określać zdarzeń wsadowych podczas tworzenia subskrypcji. Jeśli na przykład zasubskrybujesz nowe reakcje (google.workspace.chat.reaction.v1.created), aplikacja Google Chat zostanie automatycznie skonfigurowana pod kątem odbierania zdarzeń reakcji zbiorczej (google.workspace.chat.reaction.v1.batchCreated).

W tabeli poniżej znajdziesz możliwe zdarzenia zbiorcze dotyczące subskrypcji:

Typ zdarzenia zbiorczego Format
Opublikowano wiele wiadomości.

google.workspace.chat.message.v1.batchCreated

Zaktualizowano wiele wiadomości.

google.workspace.chat.message.v1.batchUpdated

Usuniętych jest wiele wiadomości.

google.workspace.chat.message.v1.batchDeleted

Utworzono wiele reakcji.

google.workspace.chat.reaction.v1.batchCreated

Wiele reakcji zostanie usuniętych.

google.workspace.chat.reaction.v1.batchDeleted

Do subskrybowanego pokoju zostanie dodanych wielu użytkowników lub użytkownik, który został dodany do kilku pokoi.

google.workspace.chat.membership.v1.batchCreated

Aktualizujemy wiele subskrypcji w pokoju, w którym się znajdujesz, lub dla użytkownika, który subskrybujesz.

google.workspace.chat.membership.v1.batchUpdated

Wielu użytkowników zostało usuniętych z subskrybowanego pokoju lub użytkownik został usunięty z kilku pokoi.

google.workspace.chat.membership.v1.batchDeleted

Pokój został zaktualizowany.

google.workspace.chat.space.v1.batchUpdated

Dane zdarzenia

W tej sekcji omawiamy dane zdarzeń i przykładowe ładunki dla zdarzeń w Google Chat.

Gdy subskrypcja Google Workspace otrzyma zdarzenie z Google Chat, pole data będzie zawierać ładunek tego zdarzenia. Zawiera on informacje o zmienionym zasobie Google Workspace. Jeśli na przykład subskrybujesz zdarzenia członkostwa w pokoju, ładunek dla tych zdarzeń zawiera informacje o zmienionym zasobie spaces.membership.

Dane zasobów w ładunku zdarzenia

Podczas tworzenia subskrypcji możesz określić, czy ładunek ma zawierać szczegóły zasobu, czy tylko jego nazwę. Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące użytkowników w pokoju czatu, możesz określić pola zasobu subskrypcji, które chcesz otrzymywać w ładunku zdarzeń.

W tabeli poniżej znajdziesz przykłady ładunków JSON w przypadku subskrypcji pokoju czatu spaces/AAAABBBBBB. W przypadku każdego odbieranego przez subskrypcję ładunku ładunek pojawia się w polu data zdarzenia:

Przykład Typ zdarzenia Ładunek JSON

Użytkownik publikuje w pokoju wiadomość „Witaj świecie”.

google.workspace.chat.message.v1.created

Obejmuje dane zasobów
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD",
        "sender":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/AAAABBBBBB/threads/EEEEEEEEEEEE"
        },
        "space":
        {
            "name": "spaces/AAAABBBBBB"
        },
        "argumentText": "Hello world"
    }
}
      
Nie zawiera danych zasobów
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD"
    }
}
      
Użytkownik staje się menedżerem pokoju.

google.workspace.chat.membership.v1.updated

Obejmuje dane zasobów
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321",
        "state": "JOINED",
        "member":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      
Nie zawiera danych zasobów
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321"
    }
}
      
Użytkownik zmienia opis pokoju na „Zespół sprzedaży Cymbal Labs”. google.workspace.chat.space.v1.updated
Obejmuje dane zasobów
{
    "space":
    {
        "name": "spaces/AAAABBBBBB",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      
Nie zawiera danych zasobów
{
    "space":
    {
        "name": "spaces/AAAABBBBBB"
    }
}
      
Do pokoju dodano 2 użytkowników Google Chat w tym samym czasie. google.workspace.chat.membership.v1.batchCreated
Obejmuje dane zasobów
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321",
            "state": "JOINED",
            "member":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/987654321234567890",
            "state": "JOINED",
            "member":
            {
                "name": "users/987654321234567890",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      
Nie zawiera danych zasobów
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/98765432123456789019"
          }
        }
    ]
}
      
Użytkownik reaguje na wiadomość przy użyciu emotikona 😩. google.workspace.chat.reaction.v1.created
Obejmuje dane zasobów
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
        "user":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      
Pomija dane zasobu
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
Użytkownicy reagują na wiadomość przy użyciu emotikonów 😩 i 😸. google.workspace.chat.reaction.v1.batchCreated
Obejmuje dane zasobów
{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
            "user":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
            "user":
            {
                "name": "users/98765431234564321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      
Pomija dane zasobu
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}
      

Ograniczenia

  • W przypadku subskrypcji dla użytkowników zdarzenia dotyczące nowych członków na czacie lub w czatach grupowych bez nazw (google.workspace.chat.membership.v1.created) są wywoływane dopiero po opublikowaniu pierwszej wiadomości.
  • Zmiany w historii pokoju nie wyzwalają zaktualizowanych zdarzeń dotyczących pokoju (typ zdarzenia: google.workspace.chat.spaces.v1.updated).
  • Aby otrzymywać zdarzenia związane z członkostwem, użytkownik musi być bezpośrednim członkiem pokoju. Jeśli użytkownik został dodany, zaktualizowany lub usunięty pośrednio z pokoju za pomocą grupy dyskusyjnej Google, nie otrzyma tych zdarzeń członkostwa. Aby dowiedzieć się, jak działa członkostwo w Grupach dyskusyjnych Google, zobacz Dodawanie grupy dyskusyjnej Google do pokoju.