Cette page explique comment répertorier les abonnements Google Workspace à l'aide de la méthode subscriptions.list()
.
Lorsque vous appelez cette méthode avec l'authentification de l'utilisateur, elle renvoie une liste d'abonnements autorisés par l'utilisateur. Lorsque vous utilisez l'authentification d'application, la méthode peut renvoyer une liste contenant n'importe quel abonnement à l'application.
Prérequis
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.
Authentification requise:
- Pour l'authentification des utilisateurs, nécessite un champ d'application compatible avec au moins l'un des types d'événements pour l'abonnement. Pour identifier un champ d'application, consultez Portées par type d'événement.
- Pour l'authentification des applications, nécessite le champ d'application
chat.bot
(applications Google Chat uniquement).
Répertorier les abonnements autorisés par un utilisateur
Pour répertorier les abonnements, vous devez filtrer par au moins un type d'événement. Vous pouvez également filtrer votre requête en fonction d'une ou de plusieurs ressources cibles. Pour en savoir plus sur les filtres de requête compatibles, consultez la documentation de la méthode list()
.
L'exemple de code suivant renvoie un tableau d'objets Subscription
filtrés par type d'événement et ressource cible. Lorsqu'elle est authentifiée en tant qu'utilisateur, la méthode ne renvoie qu'une liste des abonnements que l'utilisateur a autorisé à créer par l'application.
Pour répertorier les abonnements pour un type d'événement et une ressource cible spécifiés:
Apps Script ;
Dans votre projet Apps Script, créez un fichier de script nommé
listSubscriptions
et ajoutez le code suivant:function listSubscriptions() { // Filter for event type (required). const eventType = 'EVENT_TYPE'; // Filter for target resource (optional). const targetResource = 'TARGET_RESOURCE'; const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"` // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.list({ filter }); console.log(response); }
Remplacez les éléments suivants :
EVENT_TYPE
: type d'événement mis en forme conformément à la spécification CloudEvents. Par exemple, pour filtrer les abonnements qui reçoivent des événements concernant les nouvelles adhésions à un espace Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: ressource cible, formatée en tant que nom de ressource complet. Par exemple, pour filtrer un espace Google Chat par abonnement, utilisez//chat.googleapis.com/spaces/SPACE_ID
oùspaces/SPACE_ID
représente le champname
de la ressourceSpace
.
Pour répertorier les abonnements, exécutez la fonction
listSubscriptions
dans votre projet Apps Script.
Python
Dans votre répertoire de travail, créez un fichier nommé
list_subscriptions.py
et ajoutez le code suivant:"""List subscriptions.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = ['SCOPE'] # 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, ) # Filter for event type (required). EVENT_TYPE = 'EVENT_TYPE' # Filter for target resource (optional). TARGET_RESOURCE = 'TARGET_RESOURCE' FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"' response = service.subscriptions().list(filter=FILTER).execute() print(response)
Remplacez les éléments suivants :
SCOPE
: champ d'application OAuth compatible avec au moins un type d'événement de l'abonnement. Par exemple, si votre abonnement reçoit des événements pour un espace Chat mis à jour,https://www.googleapis.com/auth/chat.spaces.readonly
.EVENT_TYPE
: type d'événement mis en forme conformément à la spécification CloudEvents. Par exemple, pour filtrer les abonnements qui reçoivent des événements concernant les nouvelles adhésions à un espace Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: ressource cible, formatée en tant que nom de ressource complet. Par exemple, pour filtrer un espace Google Chat par abonnement, utilisez//chat.googleapis.com/spaces/SPACE_ID
oùspaces/SPACE_ID
représente le champname
de la ressourceSpace
.
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épertorier les abonnements, exécutez la commande suivante dans votre terminal:
python3 list_subscriptions.py
L'API Google Workspace Events renvoie un tableau paginé d'objets Subscription
correspondant au filtre de votre requête.