Obtenir des informations sur un événement d'un espace Google Chat

Ce guide explique comment utiliser la méthode get() sur la ressource SpaceEvent de l'API Google Chat pour obtenir des informations sur un événement dans un espace Google Chat.

La ressource SpaceEvent représente une modification apportée à un espace ou à ses ressources enfants, comme les messages, les réactions et les membres. Pour en savoir plus sur les types d'événements acceptés, consultez la documentation de référence sur le champ eventType de la ressource SpaceEvent.

Vous pouvez demander des événements jusqu'à 28 jours avant la date de la demande. L'événement contient la version la plus récente de la ressource qui a été modifiée. Par exemple, si vous demandez un événement concernant un nouveau message, mais que le message a été modifié par la suite, le serveur renvoie la ressource Message mise à jour dans la charge utile de l'événement.

Pour appeler cette méthode, vous devez utiliser l'authentification de l'utilisateur. Pour obtenir un événement, l'utilisateur authentifié doit être membre de l'espace dans lequel l'événement s'est produit.

Prérequis

Node.js

Python

Obtenir des informations sur un événement d'espace (authentification de l'utilisateur)

Pour obtenir des informations sur un événement d'espace dans Google Chat, transmettez les éléments suivants dans votre requête :

  • Spécifiez un champ d'application d'autorisation compatible avec le type d'événement de votre requête. Nous vous recommandons de choisir le champ d'application le plus restrictif qui permet à votre application de fonctionner.
  • Appelez la méthode GetSpaceEvent() en transmettant le name de l'événement d'espace à obtenir.

L'exemple suivant permet d'obtenir un événement d'espace :

Node.js

Cet exemple de code Node.js utilise l'API RPC Chat.

chat/client-libraries/cloud/get-space-event-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

// This sample shows how to get space event with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

  // Make the request
  const response = await chatClient.getSpaceEvent(request);

  // Handle the response
  console.log(response);
}

await main();

Pour exécuter cet exemple, remplacez les éléments suivants :

  • SCOPE_NAME : un champ d'application d'autorisation basé sur le type d'événement. Par exemple, si vous recevez un événement d'espace concernant un nouveau membre, utilisez le champ d'application chat.memberships.readonly, au format https://www.googleapis.com/auth/chat.memberships.readonly. Vous pouvez obtenir le type d'événement à partir de la méthode ListSpaceEvents(). Pour savoir comment utiliser cette méthode, consultez Lister les événements d'un espace.
  • SPACE_NAME : ID de l'name de l'espace. Vous pouvez obtenir l'ID en appelant la méthode ListSpaces() ou à partir de l'URL de l'espace.
  • SPACE_EVENT_NAME : ID de l'name de l'événement de l'espace. Vous pouvez obtenir l'ID à partir de la méthode ListSpaceEvents(). Pour savoir comment utiliser cette méthode, consultez Lister les événements d'un espace.

L'API Chat renvoie une instance de SpaceEvent avec des informations sur l'événement.

Obtenir des informations sur un événement d'espace (authentification de l'application Chat)

L'authentification des applications nécessite une approbation unique de l'administrateur.

Pour obtenir des informations sur un événement d'espace à partir d'un espace avec authentification de l'application à l'aide de l'API REST Chat, transmettez les éléments suivants dans votre requête :

  • Spécifiez un ou plusieurs champs d'application d'autorisation pour prendre en charge chaque type d'événement dans votre requête. Il est recommandé de choisir le champ d'application le plus restrictif qui permet à votre application de fonctionner. Pour en savoir plus sur le choix d'un champ d'application, consultez la présentation de l'authentification et de l'autorisation.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • Appelez la méthode get sur la ressource spaceEvents.
  • Transmettez l'name de l'espace pour obtenir les détails de l'événement.

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 Chat

Voici comment obtenir des informations sur un événement d'espace avec l'authentification d'application et l'API REST Chat :

Python

Cet exemple de code Python utilise l'API REST Chat.

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships.readonly` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().spaceEvents().get(
    
            # The space to get event details from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Dans le code, remplacez les éléments suivants :

    • API_KEY : clé API que vous avez créée pour générer le point de terminaison de service pour l'API Chat.
    • SPACE_NAME : nom d'un espace, que vous pouvez obtenir à partir de la méthode spaces.list de l'API Chat ou à partir de l'URL d'un espace.
    • SPACE_EVENT_NAME : ID de l'name de l'événement de l'espace. Vous pouvez obtenir l'ID à partir de la méthode ListSpaceEvents(). Pour savoir comment utiliser cette méthode, consultez Lister les événements d'un espace.
  4. Dans votre répertoire de travail, compilez et exécutez l'exemple :

    python3 chat_spaceevents_get_app.py

L'API Chat renvoie une liste paginée des événements d'un espace concernant les nouveaux membres et les nouveaux messages.