Fehler beheben und Google Workspace-Abo wieder aktivieren

Auf dieser Seite wird erklärt, wie Sie ein gesperrtes Google Workspace Abo reaktivieren, indem Sie Fehler beheben und die subscriptions.reactivate Methode aufrufen.

Google Workspace-Abos werden gesperrt, wenn ein Fehler verhindert, dass das Abo Ereignisse empfängt. Ein Abo wird beispielsweise gesperrt, wenn die Zielressource oder der Benachrichtigungsendpunkt nicht gefunden werden kann. Nachdem Sie alle Fehler im Zusammenhang mit dem Abo behoben haben, können Sie es reaktivieren, um wieder Ereignisse zu empfangen.

Informationen zu einem gesperrten Abo erhalten Sie auf folgende Weise:

  • Ihre App empfängt ein Lebenszyklusereignis zur Sperrung. Wenn Ihr Abo aufgrund eines Fehlers mit dem Endpunkt gesperrt wurde, erhalten Sie möglicherweise kein Lebenszyklusereignis.
  • Verwenden Sie die Methoden subscriptions.get oder subscriptions.list, um zu prüfen, ob das Feld state des Abos auf SUSPENDED gesetzt ist.
  • Sie werden über einen Zustellfehler an Ihrem Benachrichtigungsendpunkt benachrichtigt. Informationen zum Überwachen von Zustellfehlern an Google Cloud Pub/Sub-Themen finden Sie unter Nachrichtenfehler beheben.

Reaktivierte Abos behalten das ursprüngliche Ablaufdatum bei. Informationen zum Verlängern der Ablaufzeit eines Abos finden Sie unter Google Workspace-Abo aktualisieren oder verlängern.

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 appsscript.json Datei 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 Google Workspace Events erweiterten Dienst.

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 Befehlszeilenschnittstelle aus, um sie zu installieren oder zu aktualisieren:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

Fehler erkennen und beheben

Um den Fehler für ein Abo zu ermitteln, prüfen Sie das Feld suspensionReason des Abos. Sie finden dieses Feld, wenn Sie ein Lebenszyklus Ereignis zur Sperrung erhalten oder wenn Sie mit der subscriptions.get Methode alle Felder für das Abo prüfen.

In der folgenden Tabelle sind mögliche Fehler für ein Abo und, wenn möglich, die Behebung der Fehler aufgeführt. Wenn Sie den Fehler nicht beheben können, können Sie das Abo löschen oder warten, bis es abläuft. Die Google Workspace Events API löscht abgelaufene Abos automatisch.

Fehler Beschreibung Mögliche Lösungen

USER_SCOPE_REVOKED

Der autorisierende Nutzer hat die Berechtigung für einen oder mehrere OAuth-Bereiche widerrufen, die für das Abo erforderlich sind. Rufen Sie ein anderes Zugriffstoken ab. Weitere Informationen finden Sie unter Zugriffstoken vom Google-Autorisierungsserver abrufen.

RESOURCE_DELETED

Die Zielressource für das Abo wurde gelöscht. Wenn die Ressource wiederhergestellt wird, rufen Sie die reactivate Methode auf. Andernfalls sind keine Maßnahmen erforderlich, da Sie ein Abo nicht ohne die ursprüngliche Zielressource reaktivieren können.

USER_AUTHORIZATION_FAILURE

Der autorisierende Nutzer hat keinen Zugriff mehr auf die Ressource für das Abo. Es sind keine weiteren Schritte erforderlich. Sie können das Abo nicht reaktivieren, da der Nutzer, der es autorisiert hat, nicht auf die Zielressource zugreifen kann.

ENDPOINT_PERMISSION_DENIED

Die Google Workspace-Anwendung hat keinen Zugriff, um Ereignisse an Ihren Benachrichtigungsendpunkt zu senden. Gewähren Sie dem Dienstkonto Zugriff für die Google Workspace-Anwendung, die Ereignisse sendet.

Service accounts:
  • Google Chat-Ereignisse: chat-api-push@system.gserviceaccount.com
  • Google Drive-Ereignisse: drive-api-event-push@system.gserviceaccount.com
  • Google Meet-Ereignisse: meet-api-event-push@system.gserviceaccount.com

Gewähren Sie für Pub/Sub-Themen dem Dienstkonto die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher) .

ENDPOINT_NOT_FOUND

Der Benachrichtigungsendpunkt ist nicht vorhanden oder kann nicht gefunden werden. Prüfen Sie, ob der Endpunkt noch aktiv ist und funktioniert. Informationen zur Fehlerbehebung bei Pub/Sub-Themen finden Sie in der Dokumentation zur Fehlerbehebung.

ENDPOINT_RESOURCE_EXHAUSTED

Der Benachrichtigungsendpunkt konnte aufgrund eines unzureichenden Kontingents oder einer Ratenbegrenzung keine Ereignisse empfangen. Fordern Sie eine Kontingenterhöhung an.

APP_SCOPE_REVOKED

Der Domainadministrator hat die Berechtigung für einen oder mehrere OAuth-Bereiche für die Chat-App widerrufen. Lassen Sie sich die Berechtigung vom Administrator erteilen.

APP_AUTHORIZATION_FAILURE

Die Chat-App, die die Erstellung des Abos autorisiert hat, hat keinen Zugriff mehr auf die Zielressource des Abos. Gewinnen Sie den Zugriff auf die Zielressource zurück. Wenn die Zielressource beispielsweise ein Chatbereich ist, muss die Chat-App möglicherweise Mitglied des Bereichs sein.

Abo reaktivieren

Nachdem Sie den Fehler behoben haben, der zur Sperrung Ihres Abos geführt hat, verwenden Sie die Methode reactivate, damit das Abo wieder Ereignisse empfangen kann. Die Methode prüft, ob alle Fehler behoben wurden, und ändert das Feld state Ihres Abos von SUSPENDED in ACTIVE.

So reaktivieren Sie ein Google Workspace-Abo:

Apps Script

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

    function reactivateSubscription() {
      // The name of the subscription to reactivate.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.reactivate({}, name);
      console.log(response);
    }
    

    Ersetzen Sie Folgendes:

    • SUBSCRIPTION_ID: Die ID des Abos. Sie können die ID auf eine der folgenden Arten abrufen:
      • Der Wert des uid Felds.
      • Die ID des Ressourcennamens, der im name Feld dargestellt ist. Wenn der Ressourcenname beispielsweise subscriptions/subscription-123 ist, verwenden Sie subscription-123.
  2. Führen Sie die Funktion reactivateSubscription in Ihrem Apps Script-Projekt aus, um das Google Workspace-Abo zu reaktivieren.

Python

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

    """Reactivate 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,
    )
    
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = service.subscriptions().reactivate(name=NAME).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 auflisten 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 können die ID auf eine der folgenden Arten abrufen:
      • Der Wert des uid Felds.
      • Die ID des Ressourcennamens, der im name Feld dargestellt ist. Wenn der Ressourcenname beispielsweise subscriptions/subscription-123 ist, verwenden Sie subscription-123.
  2. Achten Sie darauf, dass Sie die OAuth-Client-ID Anmeldedaten in Ihrem Arbeitsverzeichnis gespeichert und die Datei credentials.json genannt haben. Das Codebeispiel verwendet diese JSON Datei, 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 Folgendes im Terminal aus, um das Google Workspace-Abo zu reaktivieren:

    python3 reactivate_subscription.py
Die Google Workspace Events API gibt einen lang andauernden Vorgang zurück, der die Instanz der Subscription Ressource enthält.

Wenn die Anfrage fehlschlägt, finden Sie im folgenden Abschnitt Informationen zur Fehlerbehebung bei weiteren Fehlern.

Abo als Chat-App reaktivieren

Sie können ein Abo für Chat-Ereignisse als Chat-App und nicht als Nutzer reaktivieren. Der Vorgang ist ähnlich, mit folgenden Ausnahmen:

  1. Authentifizieren Sie sich anstelle der Nutzerauthentifizierung, als Chat-App mit einmaliger Administratorgenehmigung.

  2. 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 für Mitglieder von Chatbereichen abonnieren.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: Ereignisse für Mitglieder von Chatbereichen abonnieren.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: Ereignisse für Nachrichten und Reaktionen in Chatbereichen abonnieren.
    • https://www.googleapis.com/auth/chat.app.spaces: Ereignisse für Chatbereiche abonnieren.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: Ereignisse für Chatbereiche abonnieren.

Skript schreiben, das die Google Workspace Events API aufruft

Das folgende Codebeispiel reaktiviert das Google Workspace-Abo einer Chat-App:

Python

  """Reactivate 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,
  )

  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = service.subscriptions().reactivate(name=NAME).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 für Mitglieder von Chatbereichen abonnieren.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: Ereignisse für Mitglieder von Chatbereichen abonnieren.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: Ereignisse für Nachrichten und Reaktionen in Chatbereichen abonnieren.
    • https://www.googleapis.com/auth/chat.app.spaces: Ereignisse für Chatbereiche abonnieren.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: Ereignisse für Chatbereiche abonnieren.
  • SUBSCRIPTION_ID: Die ID des Abos. Sie können die ID auf eine der folgenden Arten abrufen:

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

Fehlerbehebung bei mehreren Fehlern

Wenn Sie den Fehler behoben haben, der zur Sperrung des Abos geführt hat, und die Methode reactivate fehlschlägt, ist möglicherweise ein weiterer Fehler aufgetreten, nachdem Ihr Abo gesperrt wurde.

Prüfen Sie die Ausgabe der fehlgeschlagenen Anfrage, um weitere Fehler zu ermitteln. Die Ausgabe enthält alle noch vorhandenen Fehler.

Wenn Ihr Abo mehrere Fehler aufweist, wird für das Feld suspensionReason immer der ursprüngliche Fehler verwendet, der zur Sperrung des Abos geführt hat.