Termine aus einem Google Chat-Bereich auflisten

In diesem Leitfaden wird erläutert, wie Sie die list() Methode für die SpaceEvent Ressource der Google Chat API verwenden, um Änderungen an Ressourcen in einem Gruppenbereich aufzulisten.

Die SpaceEvent Ressource stellt eine Änderung am Zielgruppenbereich dar, einschließlich untergeordneter Ressourcen des Gruppenbereichs wie Nachrichten, Reaktionen und Mitgliedschaften. Weitere Informationen zur Liste der unterstützten Ereignistypen und Ereignisnutzlasten finden Sie in den eventType und payload Feldern der SpaceEvent Referenzdokumentation zur Ressource.

Sie können Ereignisse bis zu 28 Tage vor dem Zeitpunkt der Anfrage auflisten. Der Server gibt Ereignisse zurück, die die neueste Version der betroffenen Ressource enthalten. Wenn Sie beispielsweise Ereignisse zu neuen Gruppenbereichsmitgliedern auflisten, gibt der Server Membership-Ressourcen zurück, die die neuesten Mitgliedschaftsdetails enthalten. Wenn im angeforderten Zeitraum neue Mitglieder entfernt wurden, enthält die Ereignisnutzlast eine leere Membership-Ressource.

Um Ereignisse aus einem Gruppenbereich aufzulisten, muss der authentifizierte Nutzer oder die Chat-App Mitglied des Gruppenbereichs sein.

Vorbereitung

Node.js

Python

Gruppenbereichsereignisse auflisten (Nutzerauthentifizierung)

Wenn Sie Gruppenbereichsereignisse aus einem Chat-Gruppenbereich auflisten möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie einen oder mehrere Autorisierungsbereiche an, um jeden Ereignistyp in Ihrer Anfrage zu unterstützen. Wählen Sie als Best Practice den restriktivsten Bereich aus, der die Funktion Ihrer App weiterhin ermöglicht. Informationen zum Auswählen eines Bereichs finden Sie unter Authentifizierung und Autorisierung.

  • Rufen Sie die ListSpaceEvents() Methode auf und übergeben Sie den filter der aufzulistenden Ereignistypen. Sie müssen mindestens einen Ereignistyp angeben und können auch nach Datum filtern. Eine Liste der unterstützten Ereignistypen finden Sie im eventType Feld der SpaceEvent Ressource Referenzdokumentation.

Im folgenden Beispiel werden Ereignisse zu neuen Mitgliedschaften und Nachrichten in einem Gruppenbereich aufgelistet:

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();

Ersetzen Sie zum Ausführen dieses Beispiels SPACE_NAME durch die ID aus dem namedes Gruppenbereichs. Sie können die ID abrufen, indem Sie die ListSpaces() Methode aufrufen oder die URL des Gruppenbereichs verwenden.

Die Chat API gibt eine Liste von paginierten Liste von Gruppenbereichsereignissen zu neuen Mitgliedschaften und Nachrichten zurück.

Gruppenbereichsereignisse auflisten (Chat-App-Authentifizierung)

Für die App-Authentifizierung ist eine einmalige Administratorgenehmigung erforderlich.

Wenn Sie Gruppenbereichsereignisse aus einem Gruppenbereich mit App-Authentifizierung und der Chat REST API auflisten möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie einen oder mehrere Autorisierungsbereiche an, um jeden Ereignistyp in Ihrer Anfrage zu unterstützen. Wählen Sie als Best Practice den restriktivsten Bereich aus, der die Funktion Ihrer App weiterhin ermöglicht. Weitere Informationen zum Auswählen eines Bereichs finden Sie unter Authentifizierung und Autorisierung.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.memberships.readonly
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
    • https://www.googleapis.com/auth/chat.app.spaces.readonly
  • Rufen Sie die list Methode für die spaceEvents Ressource auf.
  • Übergeben Sie den name des Gruppenbereichs, aus dem Nachrichten aufgelistet werden sollen.
  • Übergeben Sie einen filter, um bestimmte Ereignistypen abzufragen.

Skript zum Aufrufen der Chat API schreiben

So listen Sie Gruppenbereichsereignisse mit App-Authentifizierung und der Chat REST API auf:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_spaceevents_list_app.py.
  2. Fügen Sie den folgenden Code in chat_spaceevents_list_app.py ein:

    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` 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.memberships.readonly",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces",
              "https://www.googleapis.com/auth/chat.app.spaces.readonly"]
    
    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)
    
        # 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. Ersetzen Sie im Code Folgendes:

    • SPACE_NAME: ein Gruppenbereichsname, den Sie mit der Methode spaces.list in der Chat API oder über die URL eines Gruppenbereichs abrufen können.
  4. Erstellen Sie in Ihrem Arbeitsverzeichnis das Beispiel und führen Sie es aus:

    python3 chat_spaceevents_list_app.py

Die Chat API gibt eine Liste von paginierten Liste von Gruppenbereichsereignissen zu neuen Mitgliedschaften und Nachrichten zurück.