En esta guía, se explica cómo usar el método list
en el recurso SpaceEvent
de la API de Google Chat para enumerar los cambios realizados en los recursos de un espacio.
El recurso SpaceEvent
representa un cambio en el espacio de destino, incluidos los recursos secundarios del espacio, como los mensajes, las reacciones y las membresías. Para obtener más información sobre la lista de tipos de eventos y las cargas útiles de eventos compatibles, consulta los campos eventType
y payload
de la documentación de referencia del recurso SpaceEvent
.
Puedes enumerar eventos hasta 28 días antes de la hora de la solicitud. El servidor muestra eventos que contienen la versión más reciente del recurso afectado.
Por ejemplo, si enumeras eventos sobre nuevos miembros del espacio, el servidor muestra recursos Membership
que contienen los detalles más recientes de la membresía. Si se quitaron miembros nuevos durante el período solicitado, la carga útil del evento contiene un recurso Membership
vacío.
Para llamar a este método, debes usar la autenticación de usuario. Para enumerar los eventos de un espacio, el usuario autenticado debe ser miembro del espacio.
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 enumeración de recursos
SpaceEvent
admite los siguientes métodos de autenticación:- Autenticación del usuario: Requiere un alcance que admita los tipos de eventos solicitados. Para identificar un alcance, consulta Permisos por tipo de evento.
Enumera eventos espaciales
Para enumerar los eventos de un espacio de Chat, sigue estos pasos:
- Llama al método
list
en el recursoSpaceEvent
. - Especifica qué tipos de eventos deseas enumerar en el campo
filter
. Debes especificar al menos un tipo de evento y también puedes filtrar por fecha. Para obtener una lista de los tipos de eventos admitidos, consulta el campoeventType
. - Con la autenticación de usuario, especifica uno o más alcances de autorización para admitir cada tipo de evento de tu solicitud. Como práctica recomendada, elige el alcance más restrictivo que permita que tu app funcione. Para elegir un permiso, consulta la Descripción general de autenticación y autorización.
En la siguiente muestra de código, se enumeran eventos sobre membresías y mensajes nuevos en un espacio.
Python
- En el directorio de trabajo, crea un archivo llamado
chat_space_event_list.py
. Incluye el siguiente código en
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)
En el código, reemplaza lo siguiente:
SPACE
: Es un nombre de espacio, que puedes obtener del métodospaces.list
en la API de Chat, o bien desde la URL de un espacio.
En el directorio de trabajo, compila y ejecuta la muestra:
python3 chat_space_event_list.py
La API de Chat muestra una lista de eventos de recursos SpaceEvent
sobre las membresías y los mensajes nuevos.
Personalizar paginación
De manera opcional, pasa los siguientes parámetros de consulta para personalizar la paginación:
pageSize
: La cantidad máxima de recursosSpaceEvent
que se mostrarán. Es posible que el servicio muestre menos que este valor. Los valores negativos muestran un errorINVALID_ARGUMENT
.pageToken
: Es un token de página, recibido de una llamada anterior de eventos de espacio de lista. Proporciona este token para recuperar la página siguiente. Cuando se pagina, el valor del filtro debe coincidir con la llamada que proporcionó el token de la página. Pasar un valor diferente puede generar resultados inesperados.