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

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

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

Vous pouvez demander des événements jusqu'à 28 jours avant l'heure de la requête. 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é mis à jour 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 dans votre requête. Nous vous recommandons de choisir le champ d'application le plus restrictif qui permet à votre application de fonctionner.
  • Appelez la GetSpaceEvent() méthode, en transmettant le name de l'événement d'espace à obtenir.

L'exemple suivant obtient 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: champ d'application d'autorisation basé sur le type d'événement. Par exemple, si vous obtenez un événement d'espace concernant une nouvelle appartenance, 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 ListSpaceEvents() méthode. Pour savoir comment utiliser cette méthode, consultez Répertorier les événements d'un espace.
  • SPACE_NAME : ID du name de l'espace. Vous pouvez obtenir l'ID en appelant la ListSpaces() méthode ou à partir de l'URL de l'espace.
  • SPACE_EVENT_NAME : ID de l'événement d'espace name. Vous pouvez obtenir l'ID à partir de la ListSpaceEvents() méthode. Pour savoir comment utiliser cette méthode, consultez Répertorier 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 de l'application 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. Nous vous recommandons 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.memberships.readonly
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
    • https://www.googleapis.com/auth/chat.app.spaces.readonly
  • Appelez la get méthode sur la spaceEvents ressource.
  • Transmettez le name de l'espace à partir duquel vous souhaitez obtenir des informations sur l'événement.

Écrire un script qui appelle l'API Chat

Voici comment obtenir des informations sur un événement d'espace avec l'authentification de l'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` 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.memberships.readonly",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces",
              "https://www.googleapis.com/auth/chat.app.spaces.readonly"]
    
    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)
    
        # 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 :

  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 de liste paginée d'événements d'espace concernant les nouvelles appartenances et les nouveaux messages.