Auf dieser Seite wird erläutert, wie Sie Google Workspace-Abos mit der Methode subscriptions.list()
auflisten.
Wenn Sie diese Methode mit Nutzerauthentifizierung aufrufen, gibt die Methode eine Liste der Abos zurück, die vom Nutzer autorisiert wurden. Wenn Sie die Anwendungsauthentifizierung verwenden, kann die Methode eine Liste zurückgeben, die ein beliebiges Abo für die Anwendung enthält.
Voraussetzungen
Apps Script
- Ein Google Workspace-Abo. Informationen zum Erstellen eines Abos findest du unter Abo erstellen.
Erfordert eine Nutzerauthentifizierung mit einem oder mehreren Bereichen, die alle Ereignistypen für das Abo unterstützen.
- Ein Apps Script-Projekt:
- Verwenden Sie Ihr Google Cloud-Projekt anstelle des von Apps Script automatisch erstellten Standardprojekts.
- 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. 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 aktuellen 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 findest du unter Abo erstellen.
Authentifizierung erforderlich:
- Erfordert für die Nutzerauthentifizierung einen Bereich, der mindestens einen der Ereignistypen für das Abo unterstützt. Informationen zum Identifizieren von Bereichen finden Sie unter Bereiche nach Ereignistyp.
- Für die App-Authentifizierung ist der Bereich
chat.bot
erforderlich (nur 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 list()
-Methode.
Im folgenden Codebeispiel wird ein Array von Subscription
-Objekten zurückgegeben, die nach Ereignistyp und Zielressource gefiltert sind. Bei der Authentifizierung als Nutzer gibt die Methode nur eine Liste der Abos zurück, für deren Erstellung der Nutzer die Anwendung autorisiert hat.
So listen Sie Abos für einen bestimmten Ereignistyp und eine Zielressource auf:
Apps Script
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. So können Sie beispielsweise nach Abos filtern, die Ereignisse zu neuen Mitgliedschaften in einem Google Chat-Bereich erhalten:google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: Eine Zielressource im Format ihres vollständigen Ressourcennamens. Wenn Sie beispielsweise nach Abos für einen Google Chat-Bereich filtern möchten, verwenden Sie//chat.googleapis.com/spaces/SPACE_ID
, wobeispaces/SPACE_ID
das Feldname
für die RessourceSpace
darstellt.
Führen Sie zum Auflisten von Abos die Funktion
listSubscriptions
in Ihrem Apps Script-Projekt aus.
Python
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('client_secrets.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. Beispiel: Wenn Ihr Abo Ereignisse in einem aktualisierten Chatbereich empfängt,https://www.googleapis.com/auth/chat.spaces.readonly
.EVENT_TYPE
: Ein Ereignistyp, der gemäß der CloudEvents-Spezifikation formatiert ist. So können Sie beispielsweise nach Abos filtern, die Ereignisse zu neuen Mitgliedschaften in einem Google Chat-Bereich erhalten:google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: Eine Zielressource im Format ihres vollständigen Ressourcennamens. Wenn Sie beispielsweise nach Abos für einen Google Chat-Bereich filtern möchten, verwenden Sie//chat.googleapis.com/spaces/SPACE_ID
, wobeispaces/SPACE_ID
das Feldname
für die RessourceSpace
darstellt.
Achten Sie in Ihrem Arbeitsverzeichnis darauf, dass Sie Ihre OAuth-Client-ID-Anmeldedaten gespeichert und die Datei
client_secrets.json
genannt haben. Im Codebeispiel wird diese JSON-Datei zur Authentifizierung bei Google Workspace und zum Abrufen von Nutzeranmeldedaten verwendet. Eine Anleitung findest du unter Anmeldedaten mit OAuth-Client-ID erstellen.Führen Sie in Ihrem Terminal 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 Abfrage entsprechen.