Cette page explique comment réactiver un abonnement Google Workspace suspendu en résolvant les erreurs ou en dépannant les problèmes, et en appelant la méthode subscriptions.reactivate
.
Les abonnements Google Workspace sont suspendus lorsqu'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 sont introuvables. Une fois les erreurs liées à l'abonnement résolues, vous pouvez le réactiver pour recommencer à recevoir des événements.
Vous pouvez en savoir plus sur un abonnement suspendu de différentes manières :
- 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, il est possible que vous ne receviez pas d'événement de cycle de vie.
- Vous utilisez les méthodes
subscriptions.get
ousubscriptions.list
pour voir si le champstate
de l'abonnement est défini surSUSPENDED
. - Vous recevez une notification d'échec de distribution à votre point de terminaison de notification. Pour savoir comment surveiller les échecs de remise aux sujets Google Cloud Pub/Sub, consultez Gérer les échecs de messages.
Les abonnements réactivés conservent leur date d'expiration d'origine. Pour prolonger la durée d'expiration d'un abonnement, consultez Mettre à jour ou renouveler un abonnement Google Workspace.
Apps Script
- Un abonnement Google Workspace. Pour en créer un, consultez Créer un abonnement.
- 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. Par exemple, si vous avez spécifié le champ d'applicationchat.messages
, ajoutez ce qui suit : - Activez le service avancé
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Nécessite une authentification et un niveau d'autorisation approprié pour chaque type d'événement dans l'abonnement :
- Pour l'authentification des utilisateurs, nécessite un ou plusieurs niveaux d'accès compatibles avec au moins un des types d'événements de l'abonnement. Pour identifier un champ d'application, consultez Champs d'application par type d'événement.
- Pour s'abonner à un événement Chat en tant qu'application Chat, vous devez authentifier l'application avec une approbation unique de l'administrateur. L'abonnement à un événement Chat en tant qu'application Chat est disponible dans la version Preview développeur.
Python
- Python 3.6 ou version ultérieure
- Outil de gestion de packages 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
- Un abonnement Google Workspace. Pour en créer un, consultez Créer un abonnement.
Nécessite une authentification et un niveau d'autorisation approprié pour chaque type d'événement dans l'abonnement :
- Pour l'authentification des utilisateurs, nécessite un ou plusieurs niveaux d'accès compatibles avec au moins un des types d'événements de l'abonnement. Pour identifier un champ d'application, consultez Champs d'application par type d'événement.
- Pour s'abonner à un événement Chat en tant qu'application Chat, vous devez authentifier l'application avec une approbation unique de l'administrateur. L'abonnement à un événement Chat en tant qu'application Chat est disponible dans la version Preview développeur.
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 présente les erreurs possibles pour un abonnement et, dans la mesure du possible, comment les résoudre. Si vous ne parvenez pas à résoudre le problème, vous pouvez supprimer l'abonnement ou attendre qu'il expire. L'API Google Workspace Events supprime automatiquement les abonnements expirés.
Erreur | Description | Solutions |
---|---|---|
|
L'utilisateur ayant autorisé l'abonnement a révoqué l'octroi d'un ou de plusieurs niveaux d'accès OAuth requis pour l'abonnement. | Obtenez un autre jeton d'accès. Pour en savoir plus, consultez Obtenir un jeton d'accès à partir 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 qui a autorisé l'accès n'a plus accès à la ressource pour 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 à l'envoi d'événements à votre point de terminaison de notification. | Accordez l'accès au compte de service pour l'application Google Workspace qui fournit les événements. Comptes de service :
Pour les sujets Pub/Sub, attribuez le rôle Éditeur Pub/Sub ( roles/pubsub.publisher)
) au compte de service. |
|
Le point de terminaison de notification n'existe pas ou est introuvable. | Vérifiez que le point de terminaison est toujours actif et qu'il fonctionne. Pour résoudre les problèmes liés aux thèmes Pub/Sub, consultez la documentation de dépannage. |
|
Le point de terminaison de notification n'a pas reçu d'événements en raison d'un quota insuffisant ou de l'atteinte de la limite de débit. | Demandez une augmentation de quota. |
|
L'administrateur du domaine a révoqué l'autorisation d'un ou plusieurs niveaux d'accès OAuth pour l'application Chat. | Obtenir l'approbation de l'administrateur. |
|
L'application Chat qui a autorisé la création de l'abonnement n'a plus accès à la ressource cible de l'abonnement. | Récupérez l'accès à la ressource cible. Par exemple, si la ressource cible est un espace Chat, l'application Chat peut nécessiter l'appartenance à l'espace. |
Réactiver un abonnement
Une fois l'erreur qui a entraîné la suspension de votre abonnement résolue, vous pouvez utiliser la méthode reactivate
pour que l'abonnement puisse à nouveau recevoir des événements. La méthode vérifie que toutes les erreurs sont résolues et modifie le champ state
de votre abonnement, en le faisant passer 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('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)
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 forme de tableau de chaînes. Pour lister plusieurs portées, 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 :
Dans votre répertoire de travail, assurez-vous d'avoir stocké vos identifiants d'ID client OAuth et d'avoir nommé le fichier
credentials.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 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éactiver un abonnement en tant qu'application Google Chat
Vous pouvez réactiver un abonnement aux événements Chat en tant qu'application Chat plutôt qu'en tant qu'utilisateur. Le processus est similaire, sauf que :
Au lieu d'authentifier l'utilisateur, authentifiez-vous en tant qu'application Chat avec une approbation unique de l'administrateur.
Spécifiez les habilitations d'autorisation qui permettent à l'application Chat de s'abonner aux événements Chat. Ces niveaux d'autorisation commencent toujours par
chat.app
et incluent les éléments suivants :https://www.googleapis.com/auth/chat.app.memberships
: S'abonner aux événements des membres d'un espace Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: S'abonner aux événements de messages et de réactions dans un espace Chat.https://www.googleapis.com/auth/chat.app.spaces
: abonnez-vous aux événements de l'espace Chat.
Créer une clé API
Pour appeler une méthode de l'API Developer Preview, vous devez utiliser une version Developer Preview non publique du document de découverte de l'API. Pour authentifier la requête, vous devez transmettre une clé API.
Pour créer la clé API, ouvrez le projet Google Cloud de votre application et procédez comme suit :
- Dans la console Google Cloud, accédez à Menu > API et services > Identifiants.
- Cliquez sur Créer des identifiants > Clé API.
- Votre nouvelle clé API s'affiche.
- Cliquez sur Copier pour copier votre clé API et l'utiliser dans le code de votre application. Vous trouverez également la clé API dans la section "Clés API" des identifiants de votre projet.
- Pour éviter toute utilisation abusive, nous recommandons d'ajouter des restrictions pour limiter les emplacements et les API pour lesquels la clé API peut être utilisée. Pour en savoir plus, consultez Ajouter des restrictions d'API.
Écrire un script qui appelle l'API Google Workspace Events
L'exemple de code suivant réactive l'abonnement Google Workspace d'une application Chat :
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,
discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
)
NAME = 'subscriptions/SUBSCRIPTION_ID'
response = service.subscriptions().reactivate(name=NAME).execute()
print(response)
Remplacez les éléments suivants :
SCOPES
: spécifiez les habilitations d'autorisation qui permettent à l'application Chat de s'abonner aux événements Chat. Ces niveaux d'autorisation commencent toujours parchat.app
et incluent les éléments suivants :https://www.googleapis.com/auth/chat.app.memberships
: S'abonner aux événements des membres d'un espace Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: S'abonner aux événements de messages et de réactions dans un espace Chat.https://www.googleapis.com/auth/chat.app.spaces
: abonnez-vous aux événements de l'espace Chat.
API_KEY
: clé API que vous avez créée pour générer le point de terminaison de service pour l'API Google Workspace Events.SUBSCRIPTION_ID
: ID de l'abonnement. Pour obtenir l'ID, vous pouvez utiliser l'une des méthodes suivantes :
Résoudre plusieurs erreurs
Si vous avez résolu l'erreur qui a entraîné la suspension de 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 le résultat de la requête ayant échoué. Le résultat 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.