Obtén detalles sobre un evento de un espacio de Google Chat

En esta guía, se explica cómo usar el método get en el recurso SpaceEvent de la API de Google Chat para obtener detalles sobre un evento de un espacio de Google Chat.

El recurso SpaceEvent representa un cambio en un espacio o sus recursos secundarios, como mensajes, reacciones y membresías. Para obtener información sobre los tipos de eventos admitidos, consulta el campo eventType de la documentación de referencia del recurso SpaceEvent.

Puedes solicitar eventos hasta 28 días antes de la fecha de la solicitud. El evento contiene la versión más reciente del recurso que cambió. Por ejemplo, si solicitas un evento sobre un mensaje nuevo, pero el mensaje se actualizó más tarde, el servidor muestra el recurso Message actualizado en la carga útil del evento.

Para llamar a este método, debes usar la autenticación de usuario. Para obtener un evento, el usuario autenticado debe ser miembro del espacio en el que ocurrió el evento.

Requisitos previos

Python

  • Python 3.6 o superior
  • La herramienta de administración de paquetes pip
  • Las bibliotecas cliente de Google más recientes para Python. Para instalarlos o actualizarlos, ejecuta el siguiente comando en tu interfaz de línea de comandos:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Un proyecto de Google Cloud con la API de Google Chat habilitada y configurada Para conocer los pasos, consulta Compila una app de Google Chat.
  • Autorización configurada para la app de Chat. La obtención de un evento de espacio requiere la autenticación del usuario con un alcance que admita el tipo de evento. Para elegir un permiso, consulta la Descripción general de autenticación y autorización.

Cómo obtener detalles sobre un evento espacial

Para obtener detalles sobre un SpaceEvent en Google Chat, haz lo siguiente:

  • Llama al método get en el recurso SpaceEvent.
  • Pasa el name de SpaceEvent para obtenerlo. Obtén el nombre SpaceEvent del recurso SpaceEvent de Google Chat.
  • Con la autenticación de usuario, especifica un alcance de autorización que admita el tipo de evento en tu solicitud. Como práctica recomendada, elige el alcance más restrictivo que permita que tu app funcione.

A continuación, te mostramos cómo obtener una SpaceEvent con la autenticación de usuarios:

Python

  1. En el directorio de trabajo, crea un archivo llamado chat_space_event_get.py.
  2. Incluye el siguiente código en chat_space_event_get.py:

    """Gets a SpaceEvent resource 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 = ['SCOPE']
    
    # 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()
        .get(
            # The space event to get.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace SPACE_EVENT with a SpaceEvent name.
            # Obtain the spaceEvent name from the SpaceEvent resource of
            # Chat API.
            name='spaces/SPACE/spaceEvents/SPACE_EVENT'
        )
        .execute()
    )
    
    # Prints details about the created spaceEvent.
    print(result)
    
  3. En el código, reemplaza lo siguiente:

    • SCOPE: Un alcance de autorización basado en el tipo de evento. Por ejemplo, si recibes un evento espacial sobre una membresía nueva, usa el alcance chat.memberships.readonly, con el formato https://www.googleapis.com/auth/chat.memberships.readonly. Puedes obtener el tipo de evento a través del método spaces.spaceEvents.list. Si quieres aprender a usar este método, consulta Cómo enumerar eventos de un espacio.
    • SPACE: Es un nombre de espacio, que puedes obtener del método spaces.list en la API de Chat, o bien desde la URL de un espacio.
    • SPACE_EVENT: Es el nombre del evento espacial, que puedes obtener del método spaces.spaceEvents.list.
  4. En el directorio de trabajo, compila y ejecuta la muestra:

    python3 chat_space_event_get.py
    

La API de Chat muestra una instancia de SpaceEvent con detalles sobre el evento.