Google Workspace-Abos auflisten

Auf dieser Seite wird beschrieben, wie Sie Google Workspace-Abos mit der Methode subscriptions.list() auflisten.

Wenn Sie diese Methode mit Nutzerauthentifizierung aufrufen, wird eine Liste der vom Nutzer autorisierten Abos zurückgegeben. Wenn Sie die App-Authentifizierung verwenden, kann die Methode eine Liste mit allen Abos für die App zurückgeben.

Vorbereitung

Apps Script

  • Ein Apps Script-Projekt:
    • Verwenden Sie Ihr Google Cloud-Projekt anstelle des Standardprojekts, das automatisch von Apps Script erstellt wird.
    • Für alle Bereiche, die Sie zum Konfigurieren des OAuth-Zustimmungsbildschirms hinzugefügt haben, müssen Sie die Bereiche auch der Datei appsscript.json in Ihrem Apps Script-Projekt hinzufügen. Wenn Sie beispielsweise den Bereich chat.messages angegeben haben, fügen Sie Folgendes hinzu:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • 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
      
  • Ein Google Workspace-Abo. Informationen zum Erstellen eines Abos finden Sie unter Abo erstellen.

  • Authentifizierung erforderlich:

    • Für die Nutzerauthentifizierung ist ein Bereich erforderlich, der mindestens einen der Ereignistypen für das Abo unterstützt. Informationen zum Identifizieren eines Bereichs finden Sie unter Bereiche nach Ereignistyp.
    • Für die App-Authentifizierung ist der Bereich chat.bot erforderlich (nur für Google Chat-Apps).

Von einem Nutzer autorisierte Abos auflisten

Wenn Sie Abos auflisten möchten, müssen Sie nach mindestens einem Ereignistyp filtern. Sie können Ihre Abfrage auch nach einer oder mehreren Zielressourcen filtern. Informationen zu unterstützten Abfragefiltern finden Sie in der Dokumentation zur Methode list().

Das folgende Codebeispiel gibt ein Array von Subscription-Objekten zurück, die nach Ereignistyp und Zielressource gefiltert werden. Wenn die Authentifizierung als Nutzer erfolgt, gibt die Methode nur eine Liste von Abos zurück, für die der Nutzer die App zum Erstellen autorisiert hat.

So listen Sie Abos für einen bestimmten Ereignistyp und eine bestimmte Zielressource auf:

Apps Script

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

    function listSubscriptions() {
      // Filter for event type (required).
      const eventType = 'EVENT_TYPE';
    
      // Filter for target resource (optional).
      const targetResource = 'TARGET_RESOURCE';
    
      const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"`
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.list({ filter });
      console.log(response);
    }
    

    Ersetzen Sie Folgendes:

    • EVENT_TYPE: Ein Ereignistyp, der gemäß der CloudEvents-Spezifikation formatiert ist. Wenn Sie beispielsweise nach Abos filtern möchten, die Ereignisse zu neuen Mitgliedschaften in einem Google Chat-Gruppenbereich erhalten, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: Eine Zielressource, formatiert als vollständiger Ressourcenname. Wenn Sie beispielsweise nach Abonnements für einen Google Chat-Bereich filtern möchten, verwenden Sie //chat.googleapis.com/spaces/SPACE_ID, wobei spaces/SPACE_ID das Feld name für die Ressource Space darstellt.
  2. Führen Sie die Funktion listSubscriptions in Ihrem Apps Script-Projekt aus, um Abos aufzulisten.

Python

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

    """List subscriptions."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['SCOPE']
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    # Filter for event type (required).
    EVENT_TYPE = 'EVENT_TYPE'
    
    # Filter for target resource (optional).
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"'
    response = service.subscriptions().list(filter=FILTER).execute()
    print(response)
    

    Ersetzen Sie Folgendes:

    • SCOPE: Ein OAuth-Bereich, der mindestens einen Ereignistyp aus dem Abo unterstützt. Wenn Ihr Abo beispielsweise Ereignisse in einem aktualisierten Chat-Gruppenbereich empfängt, https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: Ein Ereignistyp, der gemäß der CloudEvents-Spezifikation formatiert ist. Wenn Sie beispielsweise nach Abos filtern möchten, die Ereignisse zu neuen Mitgliedschaften in einem Google Chat-Gruppenbereich erhalten, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: Eine Zielressource, formatiert als vollständiger Ressourcenname. Wenn Sie beispielsweise nach Abonnements für einen Google Chat-Bereich filtern möchten, verwenden Sie //chat.googleapis.com/spaces/SPACE_ID, wobei spaces/SPACE_ID das Feld name für die Ressource Space darstellt.
  2. Achten Sie darauf, dass Sie die Anmeldedaten für die OAuth-Client-ID in Ihrem Arbeitsverzeichnis gespeichert und die Datei credentials.json genannt haben. Im Codebeispiel wird diese JSON-Datei verwendet, um sich bei Google Workspace zu authentifizieren und Nutzeranmeldedaten abzurufen. Eine Anleitung finden Sie unter Anmeldedaten mit OAuth-Client-ID erstellen.

  3. Führen Sie im Terminal den folgenden Befehl aus, um Abos aufzulisten:

    python3 list_subscriptions.py

Die Google Workspace Events API gibt ein paginiertes Array von Subscription-Objekten zurück, die dem Filter für Ihre Anfrage entsprechen.