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()
ousubscriptions.list()
pour voir si le champstate
de l'abonnement est défini surSUSPENDED
. - 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 ;
- Vous devez disposer d'un abonnement Google Workspace. Pour en créer un, consultez la section Créer un abonnement.
Nécessite l'authentification des utilisateurs avec un ou plusieurs champs d'application compatibles avec tous les types d'événements de l'abonnement.
- 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
- Vous devez disposer d'un abonnement Google Workspace. Pour en créer un, consultez la section Créer un abonnement.
Nécessite l'authentification des utilisateurs avec un ou plusieurs champs d'application compatibles avec tous les types d'événements de l'abonnement.
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 |
---|---|---|
|
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. |
|
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. |
|
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. |
|
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, |
|
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. |
|
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 ;
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 :
Pour réactiver l'abonnement Google Workspace, exécutez la fonction
reactivateSubscription
dans votre projet Apps Script.
Python
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 :
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.Pour réactiver l'abonnement Google Workspace, exécutez la commande suivante dans votre terminal:
python3 reactivate_subscription.py
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.