En esta guía, se explica cómo usar el
list()
método en el recurso SpaceEvent de la API de Google Chat para enumerar los cambios en los
recursos de un espacio.
El
SpaceEvent recurso
representa un cambio en el espacio de destino, incluidos los recursos secundarios del espacio
como mensajes, reacciones y membresías. Para obtener más información sobre la
lista de tipos de eventos y 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 miembros nuevos del espacio, el servidor muestra recursos Membership que contienen los detalles de membresía más recientes. Si se quitaron miembros nuevos durante el período solicitado, la carga útil del evento contiene un recurso Membership vacío.
Para enumerar eventos de un espacio, el usuario autenticado o la app de Chat deben ser miembros del espacio.
Requisitos previos
Node.js
- Configura tu entorno:
- Crea un proyecto de Google Cloud.
- Configura la pantalla de consentimiento de OAuth.
- Habilita y configura la API de Google Chat con un nombre, ícono y descripción para tu app de Chat.
- Instala la biblioteca cliente de Cloud para Node.js .
- Crea credenciales de acceso según cómo deseas autenticarte en tu solicitud a la API de Google Chat:
request:
- Para autenticarte como usuario de Chat,
crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
credentials.jsonen tu directorio local. - Para autenticarte como la app de Chat,
crea credenciales de cuenta de servicio y guárdalas como un archivo JSON llamado
credentials.json.
- Para autenticarte como usuario de Chat,
crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
- Elige un alcance de autorización según si deseas autenticarte como usuario o como la app de Chat.
Python
- Configura tu entorno:
- Crea un proyecto de Google Cloud.
- Configura la pantalla de consentimiento de OAuth.
- Habilita y configura la API de Google Chat con un nombre, ícono y descripción para tu app de Chat.
- Instala la biblioteca cliente de Cloud para Python.
- Crea credenciales de acceso según cómo deseas autenticarte en tu solicitud a la API de Google Chat:
request:
- Para autenticarte como usuario de Chat,
crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
credentials.jsonen tu directorio local. - Para autenticarte como la app de Chat,
crea credenciales de cuenta de servicio y guárdalas como un archivo JSON llamado
credentials.json.
- Para autenticarte como usuario de Chat,
crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
- Elige un alcance de autorización según si deseas autenticarte como usuario o como la app de Chat.
Enumera eventos del espacio (autenticación de usuario)
Para enumerar eventos del espacio desde un espacio 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 elegir un alcance, consulta la Descripción general de la autenticación y la autorización.
Llama al
ListSpaceEvents()método, y pasa elfilterde los tipos de eventos que se enumerarán. 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 eleventTypecampo de laSpaceEventresource documentación de referencia.
En el siguiente ejemplo, se enumeran eventos sobre membresías y mensajes nuevos en un espacio:
Node.js
Para ejecutar esta muestra, reemplaza SPACE_NAME por el ID de
el namedel espacio.
Puedes obtener el ID llamando al
ListSpaces()
método o desde la URL del espacio.
La API de Chat muestra una lista de lista paginada de eventos del espacio sobre membresías y mensajes nuevos.
Enumera eventos del espacio (autenticación de la app de Chat)
La autenticación de la app requiere la aprobación única del administrador.
Para enumerar eventos del espacio desde un espacio con autenticación de la app y 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.membershipshttps://www.googleapis.com/auth/chat.app.memberships.readonlyhttps://www.googleapis.com/auth/chat.app.messages.readonlyhttps://www.googleapis.com/auth/chat.app.spaceshttps://www.googleapis.com/auth/chat.app.spaces.readonly
- Llama al
listmétodo en elspaceEventsrecurso. - Pasa el
namedel espacio desde el que se enumerarán los mensajes. - Pasa un
filterpara consultar tipos de eventos específicos.
Escribe una secuencia de comandos que llame a la API de Chat
A continuación, se muestra cómo enumerar eventos del espacio con la autenticación de la app y la API de REST de Chat:
Python
- En tu directorio de trabajo, crea un archivo llamado
chat_spaceevents_list_app.py. Incluye el siguiente código en
chat_spaceevents_list_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().list( # The space to list events 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. parent='spaces/SPACE_NAME', # A required filter. Filters events by event type. # # Update this filter to match your requirements. filter='eventTypes:"google.workspace.chat.message.v1.created"' ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()En el código, reemplaza lo siguiente:
SPACE_NAME: Un nombre de espacio que puedes obtener delspaces.listmétodo en la API de Chat o desde la URL de un espacio.
En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_spaceevents_list_app.py
La API de Chat muestra una lista de lista paginada de eventos del espacio sobre membresías y mensajes nuevos.