Répertorier les événements d'un espace Google Chat

Ce guide explique comment utiliser la méthode list sur la ressource SpaceEvent de l'API Google Chat pour répertorier les modifications apportées aux ressources d'un espace.

La ressource SpaceEvent représente une modification de l'espace cible, y compris ses ressources enfants telles que les messages, les réactions et les adhésions. Pour en savoir plus sur la liste des types d'événements et des charges utiles d'événement compatibles, consultez les champs eventType et payload de la documentation de référence sur la ressource SpaceEvent.

Vous pouvez répertorier les événements jusqu'à 28 jours avant la date de la demande. Le serveur renvoie les événements contenant la version la plus récente de la ressource concernée. Par exemple, si vous répertoriez des événements concernant les nouveaux membres d'un espace, le serveur renvoie les ressources Membership contenant les derniers détails d'appartenance. Si de nouveaux membres ont été supprimés pendant la période demandée, la charge utile de l'événement contient une ressource Membership vide.

Pour appeler cette méthode, vous devez utiliser l'authentification des utilisateurs. Pour répertorier les événements d'un espace, l'utilisateur authentifié doit être membre de l'espace.

Prérequis

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
    
  • Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
  • Autorisation configurée pour l'application Chat. Répertorier les ressources SpaceEvent est compatible avec les méthodes d'authentification suivantes:

Répertorier les événements d'un espace

Pour répertorier les événements d'un espace Chat:

  • Appelez la méthode list sur la ressource SpaceEvent.
  • Spécifiez les types d'événements à répertorier à l'aide du champ filter. Vous devez spécifier au moins un type d'événement et vous pouvez également filtrer par date. Pour obtenir la liste des types d'événements compatibles, consultez la section Champ eventType.
  • Avec l'authentification des utilisateurs, spécifiez un ou plusieurs champs d'application d'autorisation pour prendre en charge chaque type d'événement de votre requête. Nous vous recommandons de choisir le champ d'application le plus restrictif permettant toujours le fonctionnement de votre application. Pour choisir un champ d'application, consultez la page Présentation de l'authentification et des autorisations.

Dans l'exemple de code suivant, vous répertoriez les événements concernant les nouvelles adhésions et les nouveaux messages d'un espace.

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_event_list.py.
  2. Incluez le code suivant dans chat_space_event_list.py:

    """Lists SpaceEvent resources from the Chat API."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
                'client_secrets.json', SCOPES)
    creds = flow.run_local_server()
    
    # Build a service endpoint for Chat API.
    chat = build(
      'chat',
      'v1',
      credentials=creds,
    )
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().spaceEvents().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. Dans le code, remplacez ce qui suit:

    • SPACE: nom d'espace, que vous pouvez obtenir à l'aide de la méthode spaces.list de l'API Chat ou de l'URL d'un espace.
  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_space_event_list.py
    

L'API Chat renvoie une liste d'événements de ressources SpaceEvent sur les nouveaux adhésions et messages.

Personnaliser la pagination

Vous pouvez également transmettre les paramètres de requête suivants pour personnaliser la pagination:

  • pageSize: nombre maximal de ressources SpaceEvent à renvoyer. Le service peut renvoyer une valeur inférieure à cette valeur. Les valeurs négatives renvoient une erreur INVALID_ARGUMENT.
  • pageToken: jeton de page, reçu lors d'un précédent appel d'événements d'espace de liste. Fournissez ce jeton pour récupérer la page suivante. Lors de la pagination, la valeur du filtre doit correspondre à l'appel qui a fourni le jeton de page. La transmission d'une valeur différente peut entraîner des résultats inattendus.