Google Workspace-Abo aktualisieren oder verlängern

Auf dieser Seite wird erläutert, wie Sie ein Google Workspace-Abo mit der Methode subscriptions.update() verlängern. Mit dieser Methode können Sie die Ablaufzeit eines Abos aktualisieren, einschließlich der Verlängerung des Abos auf die maximal mögliche Ablaufzeit, oder die Liste der Ereignistypen aktualisieren, die für die Zielressource empfangen werden sollen.

Apps Script

  • Ein Google Workspace-Abo. Informationen zum Erstellen eines Abos finden Sie unter Abo erstellen.

  • 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
      

Google Workspace-Abo verlängern

In diesem Abschnitt verwenden Sie die subscriptions.update()-Methode der Google Workspace Events API, um ein Abo auf die maximale Ablaufzeit zu verlängern. Wenn Sie die maximale Ablaufzeit angeben möchten, aktualisieren Sie das Feld ttl der Ressource Subscription auf 0.

Die maximale Ablaufzeit hängt davon ab, welche Ressourcendaten in der Ereignis-Payload enthalten sind. Weitere Informationen zu Ablaufzeiten finden Sie unter Ereignisdaten für Google Workspace-Ereignisse.

So verlängern Sie ein Google Workspace-Abo:

Apps Script

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

    function updateSubscription() {
      // The name of the subscription to update.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.patch({
        ttl: '0s',
      }, name);
      console.log(response);
    }
    

    Ersetzen Sie Folgendes:

    • SUBSCRIPTION_ID: Die ID des Abos. Sie haben folgende Möglichkeiten, die ID abzurufen:
      • Der Wert des Felds uid.
      • Die ID des Ressourcennamens, der im Feld name dargestellt wird. Wenn der Ressourcenname beispielsweise subscriptions/subscription-123 lautet, verwenden Sie subscription-123.
  2. Führen Sie die Funktion updateSubscription in Ihrem Apps Script-Projekt aus, um das Google Workspace-Abo zu aktualisieren.

Python

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

    """Update 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()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    BODY = {
        'ttl': {'seconds': 0},
    }
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = (
        service.subscriptions()
        .patch(name=NAME, updateMask='ttl', 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'
    • SUBSCRIPTION_ID: Die ID des Abos. Sie haben folgende Möglichkeiten, die ID abzurufen:
      • Der Wert des Felds uid.
      • Die ID des Ressourcennamens, der im Feld name dargestellt wird. Wenn der Ressourcenname beispielsweise subscriptions/subscription-123 lautet, verwenden Sie subscription-123.
  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 2.0-Client-ID erstellen.

  3. Führen Sie Folgendes in Ihrem Terminal aus, um das Google Workspace-Abo zu aktualisieren:

    python3 update_subscription.py
Die Google Workspace Events API gibt einen Vorgang mit langer Ausführungszeit zurück, der die Instanz der Subscription-Ressource enthält.

Wenn Sie Details zur aktualisierten Subscription-Ressource abrufen möchten, verwenden Sie die Methode operations.get() und geben Sie die Operation-Ressource an, die von Ihrer subscriptions.update()-Anfrage zurückgegeben wurde. Andernfalls ist die Antwort leer, wenn Sie eine Operation-Ressource aus einer früheren Version des Abos angeben.

Abo als Google Chat-App aktualisieren oder verlängern

Sie können ein Abo für Chat-Ereignisse als Chat-App anstelle eines Nutzers aktualisieren oder verlängern. Der Vorgang ist ähnlich, mit folgenden Ausnahmen:

  1. Statt der Nutzerauthentifizierung authentifizieren Sie sich als Chat-App mit einmaliger Administratorgenehmigung.

  2. Geben Sie Autorisierungsbereiche an, die es der Chat-App ermöglichen, Chat-Ereignisse zu abonnieren. Diese Autorisierungsbereiche beginnen immer mit chat.app und umfassen Folgendes:

    • https://www.googleapis.com/auth/chat.app.memberships: Ereignisse von Chatbereichsmitgliedern abonnieren.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: Abonnieren Sie Ereignisse für Chatbereichsnachrichten.
    • https://www.googleapis.com/auth/chat.app.spaces: Chatbereich-Ereignisse abonnieren.

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.

Script schreiben, das die Google Workspace Events API aufruft

Im folgenden Codebeispiel wird das Google Workspace-Abo einer Chat-App aktualisiert:

Python

  """Update subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = [SCOPES]

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1beta',
      credentials=CREDENTIALS,
      discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
  )

  BODY = {
      'ttl': {'seconds': 0},
  }
  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = (
      service.subscriptions()
      .patch(name=NAME, updateMask='ttl', body=BODY)
      .execute()
  )
  print(response)

Ersetzen Sie Folgendes:

  • SCOPES: Geben Sie Autorisierungsbereiche an, mit denen die Chat-App Chat-Ereignisse abonnieren kann. Diese Autorisierungsbereiche beginnen immer mit chat.app und umfassen Folgendes:

    • https://www.googleapis.com/auth/chat.app.memberships: Ereignisse von Chatbereichsmitgliedern abonnieren.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: Abonnieren Sie Nachrichten- und Reaktionsevents in Chatbereichen.
    • https://www.googleapis.com/auth/chat.app.spaces: Chatbereich-Ereignisse abonnieren.
  • API_KEY: Der API-Schlüssel, den Sie zum Erstellen des Dienstendpunkts für die Google Workspace Events API erstellt haben.

  • SUBSCRIPTION_ID: Die ID des Abos. Sie haben folgende Möglichkeiten, die ID zu ermitteln:

    • Der Wert des Felds uid.
    • Die ID des Ressourcennamens, der im Feld name dargestellt wird. Wenn der Ressourcenname beispielsweise subscriptions/subscription-123 lautet, verwenden Sie subscription-123.