Wyświetlanie listy zdarzeń z pokoju Google Chat

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

SpaceEventZasób reprezentuje zmianę w docelowym pokoju, w tym zasoby podrzędne pokoju, takie jak wiadomości, reakcje i członkostwa. Więcej informacji o liście obsługiwanych typów zdarzeń i ładunków zdarzeń znajdziesz w polach eventTypepayload w dokumentacji referencyjnej zasobu SpaceEvent.

Wydarzenia możesz wyświetlać do 28 dni przed czasem przesłania prośby. Serwer zwraca zdarzenia zawierające najnowszą wersję zasobu, którego dotyczą. Jeśli na przykład wymienisz wydarzenia dotyczące nowych członków przestrzeni, serwer zwróci zasobyMembership zawierające najnowsze informacje o członkostwie. Jeśli w okresie objętym żądaniem usunięto nowych członków, ładunek zdarzenia zawiera pusty zasób Membership.

Aby wyświetlić listę wydarzeń z pokoju, uwierzytelniony użytkownik lub aplikacja do obsługi czatu musi być członkiem tego pokoju.

Wymagania wstępne

Node.js

Python

Wyświetlanie listy zdarzeń dotyczących przestrzeni (uwierzytelnianie użytkownika)

Aby wyświetlić listę wydarzeń w pokoju czatu, w żądaniu przekaż te informacje:

  • Określ co najmniej 1 zakres autoryzacji, aby obsługiwać każdy typ zdarzenia w swoim żądaniu. Zalecamy wybranie najbardziej restrykcyjnego zakresu, który nadal umożliwia działanie aplikacji. Aby wybrać zakres, zapoznaj się z artykułem Uwierzytelnianie i autoryzacja – omówienie.

  • Wywołaj metodę ListSpaceEvents() przekazując filter typów zdarzeń do wyświetlenia. Musisz określić co najmniej 1 typ zdarzenia. Możesz też filtrować według daty. Listę obsługiwanych typów zdarzeń znajdziesz w dokumentacji pola eventType zasobu SpaceEvent.

W przykładzie poniżej znajdziesz listę zdarzeń dotyczących nowych członkostw i wiadomości w przestrzeni:

Node.js

chat/client-libraries/cloud/list-space-events-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly',
];

// This sample shows how to list space events with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages.
    filter:
      'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"',
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

Aby uruchomić ten przykład, zastąp SPACE_NAME identyfikatorem z przestrzeni name. Możesz go uzyskać, wywołując metodę ListSpaces() lub z adresu URL pokoju.

Interfejs Chat API zwraca stronicowaną listę zdarzeń w przestrzeni dotyczących nowych członkostw i wiadomości.

Wyświetlanie listy zdarzeń w pokoju (uwierzytelnianie aplikacji Google Chat)

Uwierzytelnianie aplikacji wymaga jednorazowego zatwierdzenia przez administratora.

Aby wyświetlić listę zdarzeń w przestrzeni z uwierzytelnianiem aplikacji i interfejsem Chat REST API, w żądaniu przekaż te informacje:

  • Określ co najmniej 1 zakres autoryzacji, aby obsługiwać każdy typ zdarzenia w swoim żądaniu. Zalecamy wybranie najbardziej restrykcyjnego zakresu, który nadal umożliwia działanie aplikacji. Więcej informacji o wybieraniu zakresu znajdziesz w artykule Omówienie uwierzytelniania i autoryzacji.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • Wywołaj metodę listspaceEventszasobie.
  • Przekaż name pokoju, z którego chcesz wyświetlić listę wiadomości.
  • Przekaż filter, aby wysłać zapytanie o określone typy zdarzeń.

Tworzenie klucza interfejsu API

Aby wywołać metodę interfejsu API wersji przedpremierowej dla programistów, musisz użyć niepublicznej wersji przedpremierowej dokumentu wykrywania interfejsu API. Aby uwierzytelnić żądanie, musisz przekazać klucz interfejsu API.

Aby utworzyć klucz interfejsu API, otwórz projekt Google Cloud swojej aplikacji i wykonaj te czynności:

  1. W konsoli Google Cloud otwórz Menu  > Interfejsy API i usługi > Dane logowania.

    Przejdź do danych logowania

  2. Kliknij Utwórz dane logowania > Klucz interfejsu API.
  3. Wyświetli się nowy klucz interfejsu API.
    • Kliknij Kopiuj , aby skopiować klucz interfejsu API do użycia w kodzie aplikacji. Klucz interfejsu API można też znaleźć w sekcji „Klucze interfejsu API” w danych logowania projektu.
    • Aby można było zapobiec nieautoryzowanemu użyciu, zalecamy ograniczenie miejsc i interfejsów API, w których można używać klucza API. Więcej informacji znajdziesz w sekcji Dodawanie ograniczeń interfejsu API.

Napisz skrypt, który wywołuje Chat API

Aby wyświetlić listę zdarzeń na czacie za pomocą uwierzytelniania aplikacji i interfejsu Chat REST API, wykonaj te czynności:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_spaceevents_list_app.py.
  2. Dodaj do pliku chat_spaceevents_list_app.py ten kod:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships.readonly` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().spaceEvents().list(
    
            # The space to list events from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE_NAME',
    
            # A required filter. Filters events by event type.
            #
            # Update this filter to match your requirements.
            filter='eventTypes:"google.workspace.chat.message.v1.created"'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. W kodzie zastąp te elementy:

    • API_KEY: klucz interfejsu API utworzony do budowania punktu końcowego usługi dla interfejsu Chat API.
    • SPACE_NAME: nazwa pokoju, którą możesz uzyskać za pomocą spaces.listmetody w interfejsie Chat API lub z adresu URL pokoju.
  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_spaceevents_list_app.py

Interfejs Chat API zwraca stronicowaną listę zdarzeń w przestrzeni dotyczących nowych członkostw i wiadomości.