Subskrybowanie wydarzeń w Google Chat

Na tej stronie opisano zdarzenia Google Chat obserwowane przez aplikację mogą rozpocząć subskrypcję za pomocą interfejsu Google Workspace Events API. Po wybraniu odpowiednich typów zdarzeń, utwórz subskrypcji, aby zacząć otrzymywać wydarzenia z Google Chat.

Oprócz subskrybowania zdarzeń możesz też wysyłać zapytania o zdarzenia, wywołując za pomocą interfejsu Chat API. Wywoływanie interfejsu Chat API pozwala okresowo pobierasz informacje o wydarzeniach albo nadrabiasz zaległości, o wydarzeniach, które mogły umknąć Twojej uwadze z powodu przerwy w dostępie do usługi. Aby się uczyć o sposobach odbierania zdarzeń w Google Chat i odpowiadania na nie, zobacz Praca z wydarzeniami z Google Chat na Dokumentacja Google Chat.

Obsługiwane zdarzenia Google Chat

Subskrypcje Google Workspace umożliwiają otrzymywanie zdarzeń dotyczących: następujące typy zmian w Google Chat:

  • Nowe, zaktualizowane lub usunięte wiadomości w przestrzeni kosmicznej.
  • nowe lub usunięte reakcje, do wiadomości.
  • Nowi, zaktualizowani lub usunięci członkowie w przestrzeni kosmicznej.
  • Zmiany w pokoju które subskrybujesz, np. zmienioną nazwę lub opis pokoju.

Zasoby, które możesz monitorować pod kątem zdarzeń

Aby odbierać zdarzenia, określ zasób Google Chat, który ma być monitorowany, który jest nazywany docelowym zasobem subskrypcji.

Interfejs Google Workspace Events API obsługuje te zasoby docelowe w Google Chat:

Zasób docelowy Format Ograniczenia
Spacja

//chat.googleapis.com/spaces/SPACE

gdzie SPACE jest identyfikatorem w nazwa zasobu interfejsu Chat API space. Identyfikator możesz uzyskać z adresu URL pokoju lub za pomocą spaces.list().

Użytkownik Google Chat, który autoryzuje subskrypcję, musi być członkiem pokoju w ramach Google Workspace lub Google Konto.
Wszystkie pokoje użytkownika

//chat.googleapis.com/spaces/-

Subskrypcja otrzymuje zdarzenia tylko z pokoi, w których znajduje się użytkownik za pomocą konta Google Workspace lub konta Google.
Użytkownik

//cloudidentity.googleapis.com/users/USER

gdzie USER jest identyfikatorem w nazwa zasobu interfejsu Chat API user. Więcej informacji: Określ i określ Użytkownicy Google Chat.

Subskrypcja otrzymuje tylko zdarzenia dotyczące użytkownika, który autoryzował subskrypcję. Użytkownik nie może autoryzować subskrypcji w imieniu innych użytkowników.

Typy zdarzeń związane z tworzeniem subskrypcji

Przy tworzeniu subskrypcji używasz funkcji eventTypes[] aby określić, jakiego typu zdarzenia chcesz otrzymywać. Typy zdarzeń: sformatowane zgodnie ze specyfikacją CloudEvents, np. google.workspace.APPLICATION.RESOURCE.VERSION.ACTION

Możesz na przykład otrzymywać informacje o zdarzeniach dotyczących użytkowników dołączających do Google Chat. musisz określić pokój jako zasób docelowy, a typ zdarzenia to google.workspace.chat.membership.v1.created Aby otrzymywać informacje o zdarzeniach związanych z określonym dołączającego do dowolnego pokoju, określasz go jako zasób docelowy oraz typ zdarzenia: google.workspace.chat.membership.v1.created. Aby dowiedzieć się więcej o: jak działają wydarzenia. Więcej informacji znajdziesz w artykule Struktura Google Workspace. wydarzenia.

W tabeli poniżej znajdziesz typy zdarzeń obsługiwane w przypadku subskrypcji w pokojach i subskrypcjach użytkowników. Aby dowiedzieć się więcej o wyjątkach które wywołują zdarzenie, zapoznaj się z sekcją Ograniczenia.

Typ zdarzenia Format Dane zasobów
Subskrypcje pokoi  
Wiadomość została opublikowana.

google.workspace.chat.message.v1.created

space.message

Wiadomość została zaktualizowana.

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 zostanie 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 został 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 stanie się członkiem pokoju.

Nie wszyscy nowi użytkownicy wywołują zdarzenia. Więcej informacji znajdziesz w sekcji Ograniczenia.

google.workspace.chat.membership.v1.created

space.membership

Członkostwo użytkownika w pokoju zostanie zaktualizowane.

google.workspace.chat.membership.v1.updated

space.membership

Użytkownik zostanie usunięty jako bezpośredni członek pokoju.

google.workspace.chat.membership.v1.deleted

space.membership

Typy zdarzeń zbiorczych (tylko dane wyjściowe)

Oprócz otrzymywania typów subskrybowanych przez Ciebie typów wydarzeń Aplikacja do obsługi czatu może też otrzymywać zdarzenia zbiorcze. Zdarzenie zbiorcze to zdarzenie reprezentujące wiele zdarzeń tego samego typu, które występują w krótkim czasie okresu. Ładunek zdarzenia zbiorczego zawiera listę wszystkich zmienionych wartości i zasobami Google Cloud.

Jeśli na przykład użytkownik doda do pokoju 20 użytkowników jednocześnie, Aplikacja do obsługi czatu może otrzymywać zdarzenie zbiorcze (google.workspace.chat.membership.v1.batchCreated). Ładunek zdarzenia zawiera lista wszystkich nowych zasobów Membership, które zostały utworzone, gdy użytkownik dodał(a) użytkowników do pokoju.

Otrzymujesz zdarzenie zbiorcze dla dowolnego typu wydarzenia, które subskrybujesz, więc nie musisz określać zdarzeń zbiorczych podczas tworzenia subskrypcji. Dla: Na przykład, jeśli zasubskrybujesz nowe reakcje (google.workspace.chat.reaction.v1.created), Twój Aplikacja do obsługi czatu jest automatycznie skonfigurowana do odbierania grup zdarzenia reakcji (google.workspace.chat.reaction.v1.batchCreated).

W tej tabeli znajdziesz możliwe zdarzenia zbiorcze w przypadku 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ęto wiele wiadomości.

google.workspace.chat.message.v1.batchDeleted

Można utworzyć wiele reakcji.

google.workspace.chat.reaction.v1.batchCreated

Usunięto wiele reakcji.

google.workspace.chat.reaction.v1.batchDeleted

Do pokoju, który subskrybujesz, zostanie dodanych wielu użytkowników lub subskrybent został dodany do większej liczby pokoi.

google.workspace.chat.membership.v1.batchCreated

Informacje o wielu subskrypcjach zostaną zaktualizowane w pokoju subskrybenta lub dla subskrybowanego użytkownika.

google.workspace.chat.membership.v1.batchUpdated

Z zasubskrybowanego pokoju zostanie usuniętych wielu użytkowników lub użytkownik został usunięty z wielu pokoi.

google.workspace.chat.membership.v1.batchDeleted

Pokój ma wiele aktualizacji.

google.workspace.chat.space.v1.batchUpdated

Dane zdarzenia

W tej sekcji znajdziesz opis danych zdarzeń i przykładowe ładunki zdarzeń w Czat.

Gdy Twój abonament Google Workspace otrzyma zdarzenie z Google Chat data zawiera ładunek zdarzenia. Ten ładunek zawiera informacje o Zmieniony zasób Google Workspace. Jeśli na przykład subskrybujesz zdarzeń członkostwa w pokoju, ładunek dla tych zdarzeń zawiera informacje o spaces.membership które uległy zmianie.

Dane zasobu w ładunku zdarzenia

Przy tworzeniu subskrypcji możesz określić, czy ładunek ma zawierać informacje o zasobie lub tylko nazwę zasobu. Dla: Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące uczestników czatu pokoju, możesz określić, które pola zasobu członkostwa chcesz otrzymywać w ładunku zdarzeń.

W tabeli poniżej znajdziesz przykłady ładunków JSON dla subskrypcji w pokoju czatu spaces/AAAABBBBBB. W przypadku każdego zdarzenia, w którym ładunek pojawi się w polu data zdarzenia:

Przykład Typ zdarzenia Ładunek JSON

Użytkownik publikuje w pokoju wiadomość „Hello world”.

google.workspace.chat.message.v1.created

Zawiera 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 uwzględnia danych zasobów
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD"
    }
}
      
Użytkownik staje się menedżerem pokoju.

google.workspace.chat.membership.v1.updated

Zawiera 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 uwzględnia danych zasobów
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321"
    }
}
      
Użytkownik zmieni opis pokoju na „Zespół sprzedaży w Laboratorium Cymbal”. google.workspace.chat.space.v1.updated
Zawiera 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 uwzględnia danych zasobów
{
    "space":
    {
        "name": "spaces/AAAABBBBBB"
    }
}
      
Do pokoju jednocześnie dodano 2 użytkowników Google Chat. google.workspace.chat.membership.v1.batchCreated
Zawiera 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 uwzględnia danych zasobów
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/98765432123456789019"
          }
        }
    ]
}
      
Użytkownik zareagował na wiadomość przy użyciu emotikona 😊. google.workspace.chat.reaction.v1.created
Zawiera dane zasobów
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
        "user":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      
Pomijanie danych zasobu
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
Użytkownicy reagują na wiadomość za pomocą emotikonów 😊 lub 😸. google.workspace.chat.reaction.v1.batchCreated
Zawiera 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": "😸"
            }
          }
        }
    ]
}
      
Pomijanie danych 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 użytkowników, wydarzeń dotyczących nowych członków na czacie lub w czatach grupowych bez nazwy (google.workspace.chat.membership.v1.created), uruchamia się dopiero po opublikowaniu pierwszej wiadomości.
  • Aby otrzymywać wydarzenia dla członków, użytkownik musi być bezpośrednim członkiem pokoju. Jeśli dodano użytkownika, które zostały zaktualizowane lub usunięte pośrednio do pokoju za pomocą grupy dyskusyjnej Google, subskrypcja nie te zdarzenia członkostwa. Aby dowiedzieć się, jak działa członkostwo w grupach dyskusyjnych Google, zapoznaj się z artykułem Dodawanie grupy dyskusyjnej Google do pokoju