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

En esta guía, se explica cómo usar el get() método 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 eventType campo de la documentación de referencia del recurso SpaceEvent.

Puedes solicitar eventos hasta 28 días antes de la hora 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

Node.js

Python

Obtén detalles sobre un evento de espacio (autenticación de usuario)

Para obtener detalles sobre un evento de espacio en Google Chat, pasa lo siguiente en tu solicitud:

  • 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.
  • Llama al GetSpaceEvent() método, pasando el name del evento de espacio para obtenerlo.

En el siguiente ejemplo, se obtiene un evento de espacio:

Node.js

En esta muestra de código de Node.js, se usa la API de RPC de 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();

Para ejecutar esta muestra, reemplaza lo siguiente:

  • SCOPE_NAME: Un alcance de autorización basado en el tipo de evento. Por ejemplo, si obtienes un evento de espacio 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 del ListSpaceEvents() método. Para obtener información sobre cómo usar este método, consulta Cómo enumerar eventos de un espacio.
  • SPACE_NAME: El ID del name del espacio. Puedes obtener el ID llamando al ListSpaces() método o desde la URL del espacio.
  • SPACE_EVENT_NAME: El ID del name evento de espacio. Puedes obtener el ID del ListSpaceEvents() método. Para obtener información sobre cómo usar este método, consulta Cómo enumerar eventos de un espacio.

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

Obtén detalles sobre un evento de espacio (autenticación de la app de Chat)

La autenticación de la app requiere la aprobación única del administrador.

Para obtener detalles sobre un evento de espacio de un espacio con autenticación de la app mediante la API de REST de Chat, pasa lo siguiente en tu solicitud:

  • Especifica uno o más alcances de autorización para admitir cada tipo de evento en tu solicitud. Como práctica recomendada, elige el alcance más restrictivo que permita que tu app funcione. Para obtener más información sobre cómo elegir un alcance, consulta la Descripción general de la autenticación y la autorización.
    • 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
  • Llama al get método en el spaceEvents recurso.
  • Pasa el name del espacio para obtener detalles del evento.

Escribe una secuencia de comandos que llame a la API de Chat

A continuación, se explica cómo obtener detalles sobre un evento de espacio con la autenticación de la app y la API de REST de Chat:

Python

En esta muestra de código de Python, se usa la API de REST de Chat.

  1. En tu directorio de trabajo, crea un archivo llamado chat_spaceevents_get_app.py.
  2. Incluye el siguiente código en 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. En el código, reemplaza lo siguiente:

  4. En tu directorio de trabajo, compila y ejecuta la muestra:

    python3 chat_spaceevents_get_app.py

La API de Chat muestra una lista de lista paginada de eventos de espacio sobre membresías y mensajes nuevos.