Google Workspace-Abo erstellen

Auf dieser Seite wird beschrieben, wie Sie mit der Google Workspace Events API ein Abo für eine Google Workspace-Ressource erstellen. Mit einem Google Workspace-Abo kann Ihre App Informationen zu Google Workspace-Ereignissen empfangen, die Änderungen an einer Google Workspace-Ressource darstellen. Informationen dazu, welche Ressourcen und Ereignistypen von der Google Workspace Events API unterstützt werden, finden Sie in der Übersicht zur Google Workspace Events API.

Auf dieser Seite finden Sie die folgenden Schritte zum Erstellen eines Google Workspace-Abos:

  1. die Umgebung einrichten
  2. Google Cloud Pub/Sub-Thema erstellen und abonnieren Sie verwenden dieses Thema als Endpunkt, um Google Workspace-Ereignisse zu empfangen.
  3. Rufen Sie die Methode create der Google Workspace Events API für die Ressource Subscription auf.
  4. Testen Sie Ihr Google Workspace-Abo, um zu prüfen, ob Ihr Pub/Sub-Thema Ereignisse empfängt, für die Sie sich registriert haben.
  5. Optional können Sie konfigurieren, wie Ereignisse an einen Endpunkt für Ihre App gesendet werden, damit Ihre App das Ereignis verarbeiten und bei Bedarf Maßnahmen ergreifen kann.

Vorbereitung

Apps Script

  • So verwenden Sie die Google Cloud CLI-Befehle in dieser Anleitung:
    1. Installieren Sie die Google Cloud CLI.
    2. Führen Sie den folgenden Code aus, um die gcloud-Befehlszeile zu initialisieren:
    3.   gcloud init
        
  • Ein Google Cloud-Projekt mit aktivierter Abrechnung. Für Abos für Google Chat müssen Sie auch die Chat API in Ihrem Cloud-Projekt aktivieren und die Felder App-Name, Avatar-URL und Beschreibung konfigurieren. Weitere Informationen finden Sie unter Google Chat-App erstellen.
  • Erfordert die Nutzerauthentifizierung mit dem für die App konfigurierten OAuth-Zustimmungsbildschirm. Wenn Sie den Zustimmungsbildschirm konfigurieren, müssen Sie einen Bereich angeben, um jeden Ereignistyp für das Abo zu unterstützen. Informationen zum Konfigurieren des Zustimmungsbildschirms und zum Ermitteln der erforderlichen Bereiche finden Sie unter Bereiche auswählen.
  • Ein Apps Script-Projekt:
    • Verwenden Sie Ihr Google Cloud-Projekt anstelle des Standardprojekts, das automatisch von Apps Script erstellt wird.
    • Alle Bereiche, die Sie zum Konfigurieren des OAuth-Zustimmungsbildschirms hinzugefügt haben, müssen Sie auch der Datei appsscript.json in Ihrem Apps Script-Projekt hinzufügen. Beispiel:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Aktivieren Sie den erweiterten Dienst Google Workspace Events.

Python

  • Python 3.6 oder höher
  • Das Paketverwaltungstool pip
  • Die neuesten Google-Clientbibliotheken für Python. Führen Sie den folgenden Befehl in der Befehlszeile aus, um sie zu installieren oder zu aktualisieren:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • So verwenden Sie die Google Cloud CLI-Befehle in dieser Anleitung:
    1. Installieren Sie die Google Cloud CLI.
    2. Führen Sie den folgenden Code aus, um die gcloud-Befehlszeile zu initialisieren:
    3.   gcloud init
        
  • Ein Google Cloud-Projekt mit aktivierter Abrechnung. Für Abos für Google Chat müssen Sie auch die Chat API in Ihrem Cloud-Projekt aktivieren und die Felder App-Name, Avatar-URL und Beschreibung konfigurieren. Weitere Informationen finden Sie unter Google Chat-App erstellen.
  • Erfordert die Nutzerauthentifizierung mit dem für die App konfigurierten OAuth-Zustimmungsbildschirm. Wenn Sie den Zustimmungsbildschirm konfigurieren, müssen Sie einen Bereich angeben, um jeden Ereignistyp für das Abo zu unterstützen. Informationen zum Konfigurieren des Zustimmungsbildschirms und zum Ermitteln der erforderlichen Bereiche finden Sie unter Bereiche auswählen.

Umgebung einrichten

Im folgenden Abschnitt wird beschrieben, wie Sie Ihre Umgebung einrichten, bevor Sie ein Google Workspace-Abo erstellen.

Google Workspace Events API und Google Cloud Pub/Sub API aktivieren

Bevor Sie Google APIs verwenden können, müssen Sie sie in einem Google Cloud-Projekt aktivieren. Sie können eine oder mehrere APIs in einem einzelnen Google Cloud-Projekt aktivieren.

Google Cloud Console

Öffnen Sie in der Google Cloud Console das Google Cloud-Projekt für Ihre App und aktivieren Sie die Google Workspace Events API und die Pub/Sub API:

APIs aktivieren

gcloud

  1. Melden Sie sich in Ihrem Arbeitsverzeichnis in Ihrem Google-Konto an:

    gcloud auth login
  2. Legen Sie Ihr Projekt auf das Cloud-Projekt für Ihre App fest:

    gcloud config set project PROJECT_ID

    Ersetzen Sie PROJECT_ID durch die Projekt-ID für das Cloud-Projekt für Ihre App.

  3. Aktivieren Sie die Google Workspace Events API und die Google Cloud Pub/Sub API:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

OAuth-Client-ID-Anmeldedaten erstellen

Wählen Sie den Anwendungstyp aus, um eine Anleitung zum Erstellen einer OAuth-Client-ID zu erhalten:

Webanwendung

  1. Rufen Sie in der Google Cloud Console das Menü  > > Clients auf.

    Zu „Clients“

  2. Klicken Sie auf Create Client.
  3. Klicken Sie auf Anwendungstyp > Webanwendung.
  4. Geben Sie im Feld Name einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
  5. Fügen Sie autorisierte URIs hinzu, die mit Ihrer App verknüpft sind:
    • Clientseitige Apps (JavaScript): Klicken Sie unter Autorisierte JavaScript-Quellen auf URI hinzufügen. Geben Sie dann einen URI für Browseranfragen ein. Damit werden die Domains angegeben, von denen Ihre Anwendung API-Anfragen an den OAuth 2.0-Server senden kann.
    • Serverseitige Apps (Java, Python usw.): Klicken Sie unter Autorisierte Weiterleitungs-URIs auf URI hinzufügen. Geben Sie dann einen Endpunkt-URI ein, an den der OAuth 2.0-Server Antworten senden kann.
  6. Klicken Sie auf Erstellen.

    Die neu erstellten Anmeldedaten werden unter OAuth 2.0-Client-IDs angezeigt.

    Notieren Sie sich die Client-ID. Clientschlüssel werden nicht für Webanwendungen verwendet.

Android

  1. Rufen Sie in der Google Cloud Console das Menü  > > Clients auf.

    Zu „Clients“

  2. Klicken Sie auf Create Client.
  3. Klicken Sie auf Anwendungstyp > Android.
  4. Geben Sie im Feld „Name“ einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
  5. Geben Sie im Feld „Paketname“ den Paketnamen aus Ihrer AndroidManifest.xml-Datei ein.
  6. Geben Sie in das Feld „SHA-1-Zertifikatfingerabdruck“ den generierten SHA-1-Zertifikatfingerabdruck ein.
  7. Klicken Sie auf Erstellen.

    Die neu erstellten Anmeldedaten werden unter „OAuth 2.0-Client-IDs“ angezeigt.

iOS

  1. Rufen Sie in der Google Cloud Console das Menü  > > Clients auf.

    Zu „Clients“

  2. Klicken Sie auf Create Client.
  3. Klicken Sie auf Anwendungstyp > iOS.
  4. Geben Sie im Feld „Name“ einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
  5. Geben Sie im Feld „Bundle-ID“ die Bundle-ID ein, wie sie in der Info.plist-Datei der App aufgeführt ist.
  6. Optional: Wenn Ihre App im Apple App Store verfügbar ist, geben Sie die App Store-ID ein.
  7. Optional: Geben Sie im Feld „Team-ID“ den von Apple generierten und 10 Zeichen umfassenden einmaligen String ein, der Ihrem Team zugewiesen wurde.
  8. Klicken Sie auf Erstellen.

    Die neu erstellten Anmeldedaten werden unter „OAuth 2.0-Client-IDs“ angezeigt.

Chrome App

  1. Rufen Sie in der Google Cloud Console das Menü  > > Clients auf.

    Zu „Clients“

  2. Klicken Sie auf Create Client.
  3. Klicken Sie auf Anwendungstyp > Chrome-Erweiterung.
  4. Geben Sie im Feld „Name“ einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
  5. Geben Sie im Feld „Artikel-ID“ die eindeutige 32‑stellige ID-String Ihrer App ein. Sie finden diesen ID-Wert in der Chrome Web Store-URL Ihrer App und im Chrome Web Store-Entwickler-Dashboard.
  6. Klicken Sie auf Erstellen.

    Die neu erstellten Anmeldedaten werden unter „OAuth 2.0-Client-IDs“ angezeigt.

Desktopanwendung

  1. Rufen Sie in der Google Cloud Console das Menü  > > Clients auf.

    Zu „Clients“

  2. Klicken Sie auf Create Client.
  3. Klicken Sie auf Anwendungstyp > Desktop-App.
  4. Geben Sie im Feld Name einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
  5. Klicken Sie auf Erstellen.

    Die neu erstellten Anmeldedaten werden unter „OAuth 2.0-Client-IDs“ angezeigt.

Fernseher und Geräte mit begrenzter Eingabe

  1. Rufen Sie in der Google Cloud Console das Menü  > > Clients auf.

    Zu „Clients“

  2. Klicken Sie auf Create Client.
  3. Klicken Sie auf Anwendungstyp > Fernseher und Geräte mit eingeschränkter Eingabe.
  4. Geben Sie im Feld „Name“ einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
  5. Klicken Sie auf Erstellen.

    Die neu erstellten Anmeldedaten werden unter „OAuth 2.0-Client-IDs“ angezeigt.

Universal Windows Platform (UWP)

  1. Rufen Sie in der Google Cloud Console das Menü  > > Clients auf.

    Zu „Clients“

  2. Klicken Sie auf Create Client.
  3. Klicken Sie auf Anwendungstyp > Universelle Windows-Plattform (UWP).
  4. Geben Sie im Feld „Name“ einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
  5. Geben Sie im Feld „Shop-ID“ die eindeutige 12‑stellige Microsoft Store-ID Ihrer App ein. Sie finden diese ID in der Microsoft Store-URL Ihrer App und im Partner Center.
  6. Klicken Sie auf Erstellen.

    Die neu erstellten Anmeldedaten werden unter „OAuth 2.0-Client-IDs“ angezeigt.

JSON-Datei mit dem Clientgeheimnis herunterladen

Die Clientschlüsseldatei ist eine JSON-Darstellung der Anmeldedaten der OAuth-Client-ID, auf die Ihre App beim Bereitstellen von Anmeldedaten verweisen kann.

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

    Zu den Anmeldedaten

  2. Klicken Sie unter OAuth 2.0-Client-IDs auf die Client-ID, die Sie erstellt haben.

  3. Klicken Sie auf JSON herunterladen.

  4. Speichern Sie die Datei als credentials.json.

Pub/Sub-Thema erstellen und abonnieren

In diesem Abschnitt erstellen Sie ein Pub/Sub-Thema und ein Abo für das Thema. Ihr Pub/Sub-Thema dient als Benachrichtigungsendpunkt, an dem Ihr Google Workspace-Abo Ereignisse empfängt.

Weitere Informationen zum Erstellen und Verwalten von Pub/Sub-Themen finden Sie in der Pub/Sub-Dokumentation.

So erstellen Sie ein Pub/Sub-Thema und abonnieren es:

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Pub/Sub-Seite auf:

    Zu Google Cloud Pub/Sub

    Achten Sie darauf, dass das Cloud-Projekt für Ihre App ausgewählt ist.

  2. Klicken Sie auf  Thema erstellen und gehen Sie so vor:

    1. Geben Sie einen Namen für das Thema ein, z. B. workspace-events-topic.
    2. Lassen Sie Standardabo hinzufügen ausgewählt. Pub/Sub benennt dieses Standardabo ähnlich wie den Namen Ihres Themas, z. B. workspace-events-topic-sub.
    3. Optional: Aktualisieren oder konfigurieren Sie zusätzliche Attribute für Ihr Thema.
  3. Klicken Sie auf Erstellen. Der vollständige Themenname hat das Format projects/PROJECT_ID/topics/TOPIC_ID. Sie verwenden diesen vollständigen Namen in einem späteren Schritt.

  4. Gewähren Sie Zugriff zum Veröffentlichen von Pub/Sub-Nachrichten in Ihrem Thema:

    1. Rufen Sie auf der Seite Ihres Themas die Seitenleiste auf und öffnen Sie den Tab Berechtigungen.
    2. Klicken Sie auf Hauptkonto hinzufügen.
    3. Fügen Sie im Feld Hauptkonten hinzufügen das Dienstkonto für die Google Workspace-Anwendung hinzu, die Ereignisse an Ihr Abo sendet:
      1. Bei Chat-Ereignissen: chat-api-push@system.gserviceaccount.com.
      2. Developer Preview: Für Drive-Ereignisse, drive-api-event-push@system.gserviceaccount.com.
      3. Für Meet-Termine: meet-api-event-push@system.gserviceaccount.com
    4. Wählen Sie im Menü Rollen zuweisen die Option Pub/Sub Publisher aus.
    5. Klicken Sie auf Speichern. Es kann einige Minuten dauern, bis die Berechtigungen für Ihr Thema aktualisiert werden.

gcloud

  1. Erstellen Sie in Ihrem Cloud-Projekt ein Thema, indem Sie den folgenden Befehl ausführen:

    gcloud pubsub topics create TOPIC_ID

    Ersetzen Sie TOPIC_ID durch eine eindeutige ID für Ihr Thema, z. B. workspace-events-topic.

    Die Ausgabe enthält den vollständigen Namen des Themas im Format projects/PROJECT_ID/topics/TOPIC_ID. Notieren Sie sich den Namen und achten Sie darauf, dass der Wert für PROJECT_ID die Cloud-Projekt-ID für Ihre App ist. Sie verwenden den Themennamen im nächsten Schritt und später zum Erstellen des Google Workspace-Abos.

  2. Zugriff zum Veröffentlichen von Nachrichten zu Ihrem Thema gewähren:

    gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'

    Ersetzen Sie Folgendes:

    • TOPIC_NAME: Der vollständige Themenname, der die Ausgabe aus dem vorherigen Schritt ist. Das Format sieht so aus: projects/PROJECT_ID/topics/TOPIC_ID.
    • GOOGLE_WORKSPACE_APPLICATION: Die Google Workspace-Anwendung, die Ereignisse an Ihr Abo senden muss:

      • Wenn Sie Ereignisse aus Chat empfangen möchten, verwenden Sie chat-api-push@system.gserviceaccount.com.
      • Entwicklervorschau: Wenn Sie Ereignisse von Drive empfangen möchten, verwenden Sie drive-api-event-push@system.gserviceaccount.com.
      • Wenn Sie Ereignisse von Meet erhalten möchten, verwenden Sie meet-api-event-push@system.gserviceaccount.com.

    Es kann einige Minuten dauern, bis die Berechtigungen für Ihr Thema aktualisiert werden.

  3. Erstellen Sie ein Pub/Sub-Abo für das Thema:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    Ersetzen Sie Folgendes:

    • SUBSCRIPTION_NAME: Ein Name für Ihr Abo, z. B. workspace-events-subscription.
    • TOPIC_NAME: Der Name des Themas, das Sie im vorherigen Schritt erstellt haben.

Google Workspace-Ressource abonnieren

In diesem Abschnitt abonnieren Sie die Google Workspace-Ressource, die Sie auf Ereignisse überwachen möchten.

Zielressource auswählen und identifizieren

In einem Google Workspace-Abo ist die Zielressource die Google Workspace-Ressource, die Sie auf Ereignisse überwachen. Die Zielressource wird im Feld targetResource des Abos mit dem vollständigen Ressourcennamen dargestellt. Beispiel: Für ein Abo, mit dem ein Google Chat-Gruppenbereich (spaces/AAAABBBBBBB) überwacht wird, ist der Wert von targetResource //chat.googleapis.com/spaces/AAAABBBBBBB.

Bevor Sie das Abo erstellen, erfahren Sie in den folgenden Abschnitten, wie Sie die Zielressource identifizieren und formatieren.

Zielressource für Chat identifizieren

Zielressource Format Einschränkungen
Leerzeichen

//chat.googleapis.com/spaces/SPACE

Dabei ist SPACE die ID im Ressourcennamen der Chat API-Ressource space. Sie können die ID aus der URL des Bereichs oder mit der Methode spaces.list() abrufen.

Der Chat-Nutzer, der das Abo autorisiert, muss über sein Google Workspace- oder Google-Konto Mitglied des Gruppenbereichs sein.
Alle Bereiche für einen Nutzer

//chat.googleapis.com/spaces/-

Das Abo empfängt nur Ereignisse für die Gruppenbereiche, in denen der Nutzer über sein Google Workspace- oder Google-Konto Mitglied ist.
Nutzer

//cloudidentity.googleapis.com/users/USER

Dabei ist USER die ID im Ressourcennamen der Chat API-Ressource user. Weitere Informationen finden Sie unter Google Chat-Nutzer identifizieren und angeben.

Das Abo erhält nur Ereignisse zum Nutzer, der das Abo autorisiert hat. Ein Nutzer kann ein Abo nicht im Namen anderer Nutzer autorisieren.

Zielressource für Drive identifizieren

Zielressource Format Einschränkungen (falls zutreffend)
Datei //googleapis.com/drive/v3/files/FILE

Dabei ist FILE die ID im Ressourcennamen der Drive API-Ressource files. Sie können die ID aus der URL der Datei oder mit der Methode files.list abrufen.

Der Nutzer, der das Abo autorisiert, muss die Berechtigung für die Datei im Abo in Bezug auf das Ereignis „Abonnieren“ haben.
Geteilte Ablage //googleapis.com/drive/v3/drives/DRIVE

Dabei ist DRIVE die ID im Ressourcennamen der Drive API-Ressource drives. Sie können die ID aus der URL des Laufwerks oder mit der Methode drives.list abrufen.

Das Abo empfängt nur Ereignisse für Elemente in der geteilten Ablage, in der der Nutzer über sein Google Workspace-Konto oder Google-Konto Mitglied ist.

Zielressource für Meet identifizieren

Zielressource Format Einschränkungen (falls zutreffend)
Konferenzraum //meet.googleapis.com/spaces/SPACE

Dabei ist SPACE die ID im Ressourcennamen der Meet REST API-Ressource space. Weitere Informationen finden Sie unter So erkennt Meet einen Besprechungsraum.

Nutzer //cloudidentity.googleapis.com/users/USER

Dabei ist USER die ID im Feld signedinUser.user der Meet REST API-Ressource participant. Weitere Informationen finden Sie unter Mit Teilnehmern arbeiten.

Das Abo erhält Ereignisse zu Besprechungsräumen, in denen der Nutzer eine der folgenden Rollen hat:

  • Der Inhaber des Konferenzraums.
  • Ein Teilnehmer im Besprechungsbereich.
  • Der Organisator des mit dem Besprechungsraum verknüpften Google Kalender-Termins.

Google Workspace-Abo erstellen

Wenn Sie ein Abo erstellen möchten, verwenden Sie die Methode subscriptions.create der Google Workspace Events API, um eine Subscription-Ressource zu erstellen. Sie geben die folgenden Felder an:

  • targetResource: Eine Google Workspace-Instanz, die Sie im vorherigen Abschnitt identifiziert haben und die mit ihrem vollständigen Ressourcennamen formatiert ist.
  • eventTypes: Ein Array mit einem oder mehreren Ereignistypen, die Sie für die Ressource erhalten möchten. Wenn Ihre App beispielsweise nur über neue Nachrichten informiert werden muss, die in einem Chat-Gruppenbereich gepostet werden, kann sie nur Ereignisse zu erstellten Nachrichten abonnieren.
  • notificationEndpoint: Ein Benachrichtigungsendpunkt, an den Ereignisse aus Ihrem Google Workspace-Abo gesendet werden. Sie verwenden das Pub/Sub-Thema, das Sie im vorherigen Abschnitt erstellt haben.
  • payloadOptions: Optionen, mit denen angegeben wird, wie viele Ressourcendaten in die Ereignisnutzlast aufgenommen werden sollen. Diese Konfiguration wirkt sich auf die Ablaufzeit Ihres Abos aus. Weitere Informationen zu Ereignisdaten

So erstellen Sie ein Google Workspace-Abo:

Apps Script

  1. Erstellen Sie in Ihrem Apps Script-Projekt eine neue Skriptdatei mit dem Namen createSubscription und fügen Sie den folgenden Code hinzu:

    function createSubscription() {
      // The Google Workspace resource to monitor for events.
      const targetResource = 'TARGET_RESOURCE';
    
      // The types of events to receive.
      const eventTypes = [EVENT_TYPES];
    
      // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
      const pubsubTopic = 'TOPIC_NAME';
    
      // Whether to include resource data or not.
      const resourceData = RESOURCE_DATA;
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.create({
        targetResource: targetResource,
        eventTypes: eventTypes,
        notificationEndpoint: {
          pubsubTopic: pubsubTopic,
        },
        payloadOptions: {
          includeResource: resourceData
        }
      });
      console.log(response);
    }
    

    Ersetzen Sie Folgendes:

    • TARGET_RESOURCE: Die Google Workspace-Ressource, die Sie abonnieren, formatiert als vollständiger Ressourcenname. Wenn Sie beispielsweise einen Google Chat-Bereich mit der Bereichs-ID AAAABBBB abonnieren möchten, verwenden Sie //chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: Ein oder mehrere Ereignistypen, die Sie in der Zielressource abonnieren möchten. Formatieren Sie die Antwort als Array von Strings, z. B. 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: Der vollständige Name des Pub/Sub-Themas, das Sie in Ihrem Cloud-Projekt erstellt haben. Das Format sieht so aus: projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: Ein boolescher Wert, der angibt, ob das Abo Ressourcendaten in der Nutzlast enthält:

      • True: Enthält alle Ressourcendaten. Wenn Sie einschränken möchten, welche Felder enthalten sind, fügen Sie das Feld fieldMask hinzu und geben Sie mindestens ein Feld für die geänderte Ressource an. Nur Abos für Chat-Ressourcen unterstützen die Einbeziehung von Ressourcendaten.
      • False: Schließt Ressourcendaten aus.
  2. Führen Sie die Funktion createSubscription in Ihrem Apps Script-Projekt aus, um das Google Workspace-Abo zu erstellen.

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen create_subscription.py und fügen Sie den folgenden Code hinzu:

    """Create subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # The Google Workspace resource to monitor for events.
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    # The types of events to receive.
    EVENT_TYPES = [EVENT_TYPES]
    
    # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
    TOPIC = 'TOPIC_NAME'
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    BODY = {
        'target_resource': TARGET_RESOURCE,
        'event_types': EVENT_TYPES,
        'notification_endpoint': {'pubsub_topic': TOPIC},
        'payload_options': {'include_resource': RESOURCE_DATA},
    }
    response = service.subscriptions().create(body=BODY).execute()
    print(response)
    

    Ersetzen Sie Folgendes:

    • SCOPES: Ein oder mehrere OAuth-Bereiche, die jeden Ereignistyp für das Abo unterstützen. Als Array von Strings formatiert. Wenn Sie mehrere Bereiche angeben möchten, trennen Sie sie durch Kommas. Beispiel: 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
    • TARGET_RESOURCE: Die Google Workspace-Ressource, die Sie abonnieren, formatiert als vollständiger Ressourcenname. Wenn Sie beispielsweise einen Google Chat-Bereich mit der Bereichs-ID AAAABBBB abonnieren möchten, verwenden Sie //chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: Ein oder mehrere Ereignistypen, die Sie in der Zielressource abonnieren möchten. Formatieren Sie die Antwort als Array von Strings, z. B. 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: Der vollständige Name des Pub/Sub-Themas, das Sie in Ihrem Cloud-Projekt erstellt haben. Das Format sieht so aus: projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: Ein boolescher Wert, der angibt, ob das Abo Ressourcendaten in der Nutzlast enthält:

      • True: Enthält alle Ressourcendaten. Wenn Sie einschränken möchten, welche Felder enthalten sind, fügen Sie das Feld fieldMask hinzu und geben Sie mindestens ein Feld für die geänderte Ressource an. Nur Abos für Chat-Ressourcen unterstützen die Einbeziehung von Ressourcendaten.
      • False: Schließt Ressourcendaten aus.
  2. Führen Sie Folgendes in Ihrem Terminal aus, um das Google Workspace-Abo zu erstellen:

    python3 create_subscription.py

Die Google Workspace Events API gibt einen abgeschlossenen Vorgang mit langer Ausführungszeit zurück, der die Instanz der von Ihnen erstellten Subscription-Ressource enthält.

Google Workspace-Abo testen

Wenn Sie testen möchten, ob Sie Google Workspace-Ereignisse empfangen, können Sie ein Ereignis auslösen und Nachrichten für das Pub/Sub-Abo abrufen.

So testen Sie Ihr Google Workspace-Abo:

Google Cloud Console

  1. Lösen Sie einen oder mehrere Ereignistypen in der Zielressource Ihres Google Workspace-Abos aus. Wenn Sie beispielsweise neue Nachrichten in einem Chatbereich abonniert haben, posten Sie eine Nachricht im Bereich.

  2. Rufen Sie in der Google Cloud Console die Pub/Sub-Seite auf:

    Zu Pub/Sub

    Achten Sie darauf, dass das Cloud-Projekt für Ihre App ausgewählt ist.

  3. Klicken Sie im Menü Pub/Sub auf Abos.

  4. Suchen Sie in der Tabelle nach dem Pub/Sub-Abo für Ihr Thema und klicken Sie auf den Namen des Abos.

  5. Klicken Sie auf den Tab Nachrichten.

  6. Klicken Sie auf Pull. Es kann einige Minuten dauern, bis ein Ereignis eine Pub/Sub-Nachricht generiert.

gcloud

  1. Lösen Sie einen oder mehrere Ereignistypen in der Zielressource Ihres Google Workspace-Abos aus. Wenn Sie beispielsweise neue Nachrichten in einem Chatbereich abonniert haben, posten Sie eine Nachricht im Bereich.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    Ersetzen Sie Folgendes:

    • PUBSUB_SUBSCRIPTION_NAME: Der vollständige Name Ihres Pub/Sub-Abos im Format projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID.
    • MESSAGE_COUNT: Die maximale Anzahl der Pub/Sub-Nachrichten, die Sie abrufen möchten.

    Es kann einige Minuten dauern, bis ein Ereignis eine Pub/Sub-Nachricht generiert.

Für jedes von Ihnen ausgelöste Google Workspace-Ereignis wird eine Nachricht mit dem Ereignis an Ihr Pub/Sub-Abo gesendet. Weitere Informationen finden Sie unter Ereignisse als Google Cloud Pub/Sub-Nachrichten empfangen.

Konfigurieren, wie Ihre App Ereignisse empfängt

Das von Ihnen erstellte Pub/Sub-Abo ist pullbasiert. Nachdem Sie Ihr Pub/Sub-Abo getestet haben, können Sie den Bereitstellungstyp ändern, um festzulegen, wie Ihre App Ereignisse empfängt. Sie können das Pub/Sub-Abo beispielsweise für den Push-Zustellungstyp konfigurieren, damit Ihre App Ereignisse direkt an einen App-Endpunkt empfangen kann.

Informationen zum Konfigurieren eines Pub/Sub-Abos finden Sie in der Pub/Sub-Dokumentation.