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 corrigeant les erreurs et en appelant la méthode subscriptions.reactivate().

Les abonnements Google Workspace sont suspendus chaque fois qu'une erreur empêche l'abonnement de recevoir des événements. Par exemple, un abonnement est suspendu lorsque sa ressource cible ou son point de terminaison de notification ne sont pas trouvés. Une fois les erreurs de l'abonnement corrigées, vous pouvez le réactiver pour recommencer à recevoir des événements.

Vous pouvez savoir si votre abonnement est suspendu de l'une des manières suivantes:

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

Les abonnements réactivés conservent la date d'expiration d'origine. Pour prolonger la date 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 créé automatiquement par Apps Script.
    • Pour tous les champs d'application que vous avez ajoutés pour configurer l'écran de consentement OAuth, vous devez également les ajouter au 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
  • Outil de gestion des paquets pip
  • 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 résoudre les erreurs

Pour identifier l'erreur d'un abonnement, examinez le champ suspensionReason de l'abonnement. Vous trouverez ce champ lorsque vous recevrez 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 pour un abonnement et, dans la mesure du possible, comment 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 arrivés à expiration.

Erreur Description Solutions

USER_SCOPE_REVOKED

L'utilisateur qui a autorisé l'accès a révoqué l'octroi d'un ou de plusieurs champs d'application OAuth requis pour l'abonnement. Obtenez un autre jeton d'accès. Pour en savoir plus, consultez 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 qui a autorisé l'accès 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 à l'envoi d'événements à votre point de terminaison de notification. Accordez l'accès au compte de service de l'application Google Workspace qui envoie des é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 d'éditeur Pub/Sub (roles/pubsub.publisher) ) au compte de service.

ENDPOINT_NOT_FOUND

Le point de terminaison de notification n'existe pas ou est introuvable. Vérifiez que le point de terminaison est toujours actif et en état de marche. Pour résoudre les problèmes liés aux sujets Pub/Sub, consultez la documentation de 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 de la limite de débit atteinte. Demandez une augmentation de quota.

Réactiver un abonnement

Une fois que vous avez résolu l'erreur qui a suspendu votre abonnement, vous pouvez utiliser la méthode reactivate() pour autoriser l'abonnement à recevoir à nouveau des événements. La méthode vérifie que toutes les erreurs sont résolues et remplace le champ state de votre abonnement de SUSPENDED par 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 la 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 pour l'abonnement. Formaté sous la forme d'un tableau de chaînes. Pour lister plusieurs champs d'application, séparez-les par des virgules. Par 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 la 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, assurez-vous d'avoir stocké vos identifiants d'ID client OAuth et d'avoir 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 utilisateur. Pour obtenir des instructions, consultez Créer des identifiants 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 contenant l'instance de la ressource Subscription.

Si la requête échoue, consultez la section suivante pour résoudre les erreurs supplémentaires.

Résoudre les problèmes d'erreurs multiples

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

Pour identifier d'autres erreurs, examinez la sortie de la requête ayant échoué. La sortie contient toutes les erreurs encore présentes.

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