Résoudre les erreurs et réactiver un abonnement Google Workspace

Cette page explique comment réactiver un abonnement Google Workspace suspendu en résolvant ou en résolvant les erreurs, et en appelant la méthode subscriptions.reactivate().

Les abonnements Google Workspace sont suspendus lorsqu'une erreur les empêche de recevoir des événements. Par exemple, un abonnement est suspendu lorsque sa ressource cible ou le point de terminaison de notification est introuvable. Après avoir résolu les erreurs liées à l'abonnement, vous pouvez le réactiver pour recommencer à recevoir des événements.

Pour en savoir plus sur la suspension d'un abonnement:

  • Votre application reçoit un événement de cycle de vie concernant la suspension. Si votre abonnement est suspendu en raison d'une erreur avec son point de terminaison, vous ne recevrez peut-être pas d'événement de cycle de vie.
  • Utilisez les méthodes subscriptions.get() ou subscriptions.list() pour voir si le champ state de l'abonnement est défini sur SUSPENDED.
  • Vous êtes averti d'un échec de distribution au point de terminaison de vos notifications. Pour en savoir plus sur la surveillance des échecs de distribution des messages dans les sujets Google Cloud Pub/Sub, consultez la section Gérer les échecs de distribution des messages.

Les abonnements réactivés conservent la date d'expiration d'origine. Pour prolonger le délai d'expiration d'un abonnement, consultez Mettre à jour ou renouveler un abonnement.

Apps Script ;

  • Un projet Apps Script:
    • Utilisez votre projet Google Cloud au lieu de celui par défaut créé automatiquement par Apps Script.
    • Tous les champs d'application que vous avez ajoutés pour configurer l'écran de consentement OAuth doivent également être inclus dans le fichier appsscript.json de votre projet Apps Script. Exemple :
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Activez le service avancé Google Workspace Events.

Python

  • Python 3.6 ou version ultérieure
  • L'outil de gestion des packages pip
  • Les dernières bibliothèques clientes Google pour Python. Pour les installer ou les mettre à jour, exécutez la commande suivante dans votre interface de ligne de commande :
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

Identifier et corriger les erreurs

Pour identifier l'erreur d'un abonnement, examinez le champ suspensionReason de l'abonnement. Vous pouvez trouver ce champ lorsque vous recevez un événement de cycle de vie concernant la suspension ou en utilisant la méthode subscriptions.get() pour examiner tous les champs de l'abonnement.

Le tableau suivant affiche les erreurs possibles liées à un abonnement et, dans la mesure du possible, la procédure à suivre pour les résoudre. Si vous ne parvenez pas à résoudre l'erreur, vous pouvez supprimer l'abonnement ou attendre qu'il expire. L'API Google Workspace Events supprime automatiquement les abonnements expirés.

Error Description Méthodes de résolution

USER_SCOPE_REVOKED

L'utilisateur autorisé a révoqué l'attribution d'un ou de plusieurs champs d'application OAuth requis pour l'abonnement. Procurez-vous un autre jeton d'accès. Pour en savoir plus, consultez la section Obtenir un jeton d'accès auprès du serveur d'autorisation Google.

RESOURCE_DELETED

La ressource cible de l'abonnement est supprimée. Si la ressource est restaurée, appelez la méthode reactivate(). Sinon, aucune action n'est requise, car vous ne pouvez pas réactiver un abonnement sans sa ressource cible d'origine.

USER_AUTHORIZATION_FAILURE

L'utilisateur autorisé n'a plus accès à la ressource de l'abonnement. Aucune action n'est requise. Vous ne pouvez pas réactiver l'abonnement, car l'utilisateur qui l'a autorisé ne peut pas accéder à la ressource cible.

ENDPOINT_PERMISSION_DENIED

L'application Google Workspace n'a pas accès pour diffuser des événements au point de terminaison de notification. accorder au compte de service l'accès à l'application Google Workspace qui fournit les événements ;

Pour les événements Google Chat, le compte de service est chat-api-push@system.gserviceaccount.com. Pour les événements Google Meet, le compte de service est meet-api-event-push@system.gserviceaccount.com.

Pour les sujets Pub/Sub, attribuez le rôle Éditeur Pub/Sub (roles/pubsub.publisher) au compte de service,

ENDPOINT_NOT_FOUND

Le point de terminaison de la notification n'existe pas ou est introuvable. Vérifiez que le point de terminaison est toujours actif et fonctionnel. Pour résoudre les problèmes liés aux sujets Pub/Sub, consultez la documentation sur le dépannage.

ENDPOINT_RESOURCE_EXHAUSTED

Le point de terminaison de notification n'a pas pu recevoir d'événements en raison d'un quota insuffisant ou d'une limitation du débit. Demandez une augmentation de quota.

Réactiver un abonnement

Après avoir résolu l'erreur qui a suspendu votre abonnement, vous pouvez utiliser la méthode reactivate() pour permettre à l'abonnement de recevoir à nouveau des événements. La méthode vérifie que toutes les erreurs sont résolues et fait passer le champ state de votre abonnement de SUSPENDED à ACTIVE.

Pour réactiver un abonnement Google Workspace:

Apps Script ;

  1. Dans votre projet Apps Script, créez un fichier de script nommé reactivateSubscription et ajoutez le code suivant:

    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);
    }
    

    Remplacez les éléments suivants :

    • SUBSCRIPTION_ID: ID de l'abonnement. Pour obtenir l'ID, vous pouvez utiliser l'une des méthodes suivantes :
      • Valeur du champ uid.
      • ID du nom de ressource représenté dans le champ name. Par exemple, si le nom de la ressource est subscriptions/subscription-123, utilisez subscription-123.
  2. Pour réactiver l'abonnement Google Workspace, exécutez la fonction reactivateSubscription dans votre projet Apps Script.

Python

  1. Dans votre répertoire de travail, créez un fichier nommé reactivate_subscription.py et ajoutez le code suivant:

    """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('client_secrets.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)
    

    Remplacez les éléments suivants :

    • SCOPES: un ou plusieurs champs d'application OAuth compatibles avec chaque type d'événement de l'abonnement. Mise en forme sous la forme d'un tableau de chaînes. Pour répertorier plusieurs champs d'application, séparez-les par une virgule. Exemple :'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
    • SUBSCRIPTION_ID: ID de l'abonnement. Pour obtenir l'ID, vous pouvez utiliser l'une des méthodes suivantes :
      • Valeur du champ uid.
      • ID du nom de ressource représenté dans le champ name. Par exemple, si le nom de la ressource est subscriptions/subscription-123, utilisez subscription-123.
  2. Dans votre répertoire de travail, vérifiez que vous avez stocké les identifiants de votre ID client OAuth et que vous avez nommé le fichier client_secrets.json. L'exemple de code utilise ce fichier JSON pour s'authentifier auprès de Google Workspace et obtenir les identifiants de l'utilisateur. Pour obtenir des instructions, consultez Créer des identifiants d'ID client OAuth.

  3. Pour réactiver l'abonnement Google Workspace, exécutez la commande suivante dans votre terminal:

    python3 reactivate_subscription.py
    
L'API Google Workspace Events renvoie une opération de longue durée qui contient l'instance de la ressource Subscription.

Si la requête échoue, consultez la section suivante pour résoudre d'autres erreurs.

Résoudre plusieurs erreurs

Si vous avez résolu l'erreur qui a suspendu l'abonnement et que la méthode reactivate() échoue, une autre erreur peut se produire après la suspension de l'abonnement.

Pour identifier d'autres erreurs, examinez le résultat de la requête ayant échoué. Le résultat contient des erreurs encore présentes.

Lorsque votre abonnement présente plusieurs erreurs, la valeur du champ suspensionReason utilise toujours l'erreur d'origine qui a suspendu votre abonnement.