Wyświetlanie listy zdarzeń z pokoju Google Chat

Z tego przewodnika dowiesz się, jak używać metody list na zasobie SpaceEvent interfejsu Google Chat API do wyświetlania listy zmian zasobów w pokoju.

Zasób SpaceEvent reprezentuje zmianę w pokoju docelowym, w tym w zasobach podrzędnych, takich jak wiadomości, reakcje i członkostwo. Więcej informacji o liście obsługiwanych typów zdarzeń i ładunków zdarzeń znajdziesz w polach eventType i payload w dokumentacji referencyjnej zasobu SpaceEvent.

Możesz wymienić zdarzenia do 28 dni przed wysłaniem prośby. Serwer zwraca zdarzenia zawierające najnowszą wersję zasobu, którego dotyczy problem. Jeśli na przykład wyświetlisz zdarzenia dotyczące nowych członków pokoju, serwer zwróci zasoby Membership zawierające najnowsze informacje o członkostwie. Jeśli w wybranym okresie zostali usunięci nowi użytkownicy, ładunek zdarzenia będzie zawierał pusty zasób Membership.

Aby wywołać tę metodę, musisz użyć uwierzytelniania użytkowników. Aby wyświetlić listę zdarzeń z pokoju, uwierzytelniony użytkownik musi do niego należeć.

Wymagania wstępne

Python

  • Python 3.6 lub nowszy
  • Narzędzie do zarządzania pakietami pip
  • Najnowsze biblioteki klienta Google dla języka Python. Aby je zainstalować lub zaktualizować, uruchom w interfejsie wiersza poleceń to polecenie:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w artykule Tworzenie aplikacji Google Chat.
  • Skonfigurowano autoryzację dla aplikacji Google Chat. Wyświetlanie listy zasobów SpaceEvent obsługuje te metody uwierzytelniania:

Wyświetlenie listy zdarzeń dotyczących pokoju

Aby wyświetlić listę zdarzeń w pokoju z pokoju czatu:

W poniższym przykładowym kodzie wymieniono zdarzenia dotyczące nowych subskrypcji i wiadomości w pokoju.

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_space_event_list.py.
  2. Umieść ten kod w elemencie chat_space_event_list.py:

    """Lists SpaceEvent resources from the Chat API."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
                'client_secrets.json', SCOPES)
    creds = flow.run_local_server()
    
    # Build a service endpoint for Chat API.
    chat = build(
      'chat',
      'v1',
      credentials=creds,
    )
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().spaceEvents().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. Zastąp w nim ten fragment kodu:

    • SPACE: nazwa pokoju, którą można uzyskać za pomocą metody spaces.list w interfejsie Chat API lub z adresu URL pokoju.
  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_space_event_list.py
    

Interfejs Chat API zwraca listę zdarzeń zasobów SpaceEvent dotyczących nowych subskrypcji i wiadomości.

Dostosuj podział na strony

Opcjonalnie przekaż te parametry zapytania, aby dostosować podział na strony:

  • pageSize: maksymalna liczba zasobów typu SpaceEvent do zwrócenia. Usługa może zwrócić mniejszą wartość od tej wartości. Wartości ujemne zwracają błąd INVALID_ARGUMENT.
  • pageToken: token strony otrzymany z poprzedniego wywołania zdarzeń związanych z obszarami list. Podaj ten token, aby pobrać kolejną stronę. W przypadku podziału na strony wartość filtra powinna odpowiadać wywołaniu, które dostarczyło token strony. Przekazywanie innej wartości może doprowadzić do nieoczekiwanych wyników.