Termine aus einem Google Chat-Bereich auflisten

In diesem Leitfaden wird beschrieben, wie Sie mit der Methode list() für die Ressource SpaceEvent der Google Chat API Änderungen an Ressourcen in einem Space auflisten.

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

Sie können Ereignisse bis zu 28 Tage vor dem Zeitpunkt der Anfrage auflisten. Der Server gibt Ereignisse zurück, die die aktuelle Version der betroffenen Ressource enthalten. Wenn Sie beispielsweise Ereignisse zu neuen Projektbereichsmitgliedern auflisten, gibt der Server Membership-Ressourcen mit den neuesten Mitgliedschaftsdetails zurück. Wenn neue Mitglieder während des angeforderten Zeitraums 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

Space-Ereignisse auflisten (Nutzerauthentifizierung)

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

  • Geben Sie mindestens einen Autorisierungsbereich an, um jeden Ereignistyp in Ihrer Anfrage zu unterstützen. Es empfiehlt sich, den restriktivsten Bereich auszuwählen, der die Funktion Ihrer App weiterhin ermöglicht. Informationen zum Auswählen eines Bereichs finden Sie unter Übersicht über Authentifizierung und Autorisierung.

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

Im folgenden Beispiel werden Ereignisse zu neuen Mitgliedschaften und Nachrichten in einem Bereich aufgeführt:

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 SPACE_NAME durch die ID aus der name des Bereichs, um dieses Beispiel auszuführen. Sie können die ID abrufen, indem Sie die Methode ListSpaces() aufrufen oder die URL des Bereichs verwenden.

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

Space-Ereignisse auflisten (Chat-App-Authentifizierung)

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

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

  • Geben Sie mindestens einen Autorisierungsbereich an, um jeden Ereignistyp in Ihrer Anfrage zu unterstützen. Es empfiehlt sich, den restriktivsten Bereich auszuwählen, der die Funktion Ihrer App weiterhin ermöglicht. Weitere Informationen zur Auswahl eines Bereichs finden Sie unter Authentifizierung und Autorisierung.
    • 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
  • Rufen Sie die Methode list für die Ressource spaceEvents auf.
  • Übergeben Sie die name des Gruppenbereichs, aus dem Nachrichten aufgelistet werden sollen.
  • Übergeben Sie ein filter, um bestimmte Ereignistypen abzufragen.

API-Schlüssel erstellen

Wenn Sie eine Developer Preview API-Methode aufrufen möchten, müssen Sie eine nicht öffentliche Developer Preview-Version des API-Erkennungsdokuments verwenden. Zur Authentifizierung der Anfrage müssen Sie einen API-Schlüssel übergeben.

So erstellen Sie den API-Schlüssel: Öffnen Sie das Google Cloud-Projekt Ihrer App und gehen Sie so vor:

  1. Rufen Sie in der Google Cloud Console das Menü  > APIs und Dienste > Anmeldedaten auf.

    Zu den Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
  3. Der neue API-Schlüssel wird angezeigt.
    • Klicken Sie auf „Kopieren“ , um den API-Schlüssel zu kopieren und im Code Ihrer App zu verwenden. Der API-Schlüssel ist auch im Bereich „API-Schlüssel“ der Anmeldedaten Ihres Projekts zu finden.
    • Damit eine nicht autorisierte Verwendung verhindert wird, sollten Sie einschränken, wo und für welche APIs der API-Schlüssel verwendet werden kann. Weitere Informationen finden Sie unter API-Einschränkungen hinzufügen.

Skript schreiben, das die Chat API aufruft

So listen Sie Space-Ereignisse 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.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. Ersetzen Sie im Code Folgendes:

    • API_KEY: Der API-Schlüssel, den Sie zum Erstellen des Dienstendpunkts für die Chat API erstellt haben.
    • SPACE_NAME: Ein Bereichsname, den Sie über die Methode spaces.list in der Chat API oder über die URL eines Bereichs abrufen können.
  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_spaceevents_list_app.py

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