Modifier ou renouveler un abonnement Google Workspace

Cette page explique comment renouveler un abonnement Google Workspace à l'aide de la méthode subscriptions.update(). Vous pouvez utiliser cette méthode pour modifier le délai d'expiration d'un abonnement, y compris pour le renouveler pour la durée maximale possible, ou pour modifier la liste des types d'événements à recevoir concernant la ressource cible.

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. Par exemple, si vous avez spécifié le champ d'application chat.messages, ajoutez ce qui suit :
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Activez le service avancé Google Workspace Events.

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
      

Renouveler un abonnement Google Workspace

Dans cette section, vous allez utiliser la méthode subscriptions.update() de l'API Google Workspace Events pour renouveler un abonnement jusqu'à sa date d'expiration maximale. Pour spécifier le délai d'expiration maximal, mettez à jour le champ ttl de la ressource Subscription sur 0.

La durée d'expiration maximale dépend des données de ressources incluses dans la charge utile de l'événement. Pour en savoir plus sur les délais d'expiration, consultez Données d'événement pour les événements Google Workspace.

Pour renouveler un abonnement Google Workspace :

Apps Script

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

    function updateSubscription() {
      // The name of the subscription to update.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.patch({
        ttl: '0s',
      }, 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 mettre à jour l'abonnement Google Workspace, exécutez la fonction updateSubscription dans votre projet Apps Script.

Python

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

    """Update 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,
    )
    
    BODY = {
        'ttl': {'seconds': 0},
    }
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = (
        service.subscriptions()
        .patch(name=NAME, updateMask='ttl', body=BODY)
        .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 :
      • 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, 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.

  3. Pour mettre à jour l'abonnement Google Workspace, exécutez la commande suivante dans votre terminal :

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

Pour obtenir des informations sur la ressource Subscription mise à jour, utilisez la méthode operations.get() et spécifiez la ressource Operation renvoyée par votre requête subscriptions.update(). Sinon, si vous spécifiez une ressource Operation d'une version précédente de l'abonnement, la réponse est vide.

Modifier ou renouveler un abonnement en tant qu'application Google Chat

Vous pouvez mettre à jour ou renouveler un abonnement aux événements Chat en tant qu'application Chat plutôt qu'en tant qu'utilisateur. Le processus est similaire, sauf que :

  1. Au lieu d'authentifier l'utilisateur, authentifiez-vous en tant qu'application Chat avec une approbation unique de l'administrateur.

  2. 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 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 :

  1. Dans la console Google Cloud, accédez à Menu  > API et services > Identifiants.

    Accéder à "Identifiants"

  2. Cliquez sur Créer des identifiants > Clé API.
  3. 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 met à jour l'abonnement Google Workspace d'une application Chat :

Python

  """Update 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',
  )

  BODY = {
      'ttl': {'seconds': 0},
  }
  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = (
      service.subscriptions()
      .patch(name=NAME, updateMask='ttl', body=BODY)
      .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 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.
  • 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 :

    • 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.