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 en los recursos de un espacio.
El recurso SpaceEvent
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 admitidos, 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 devuelve eventos que contienen la versión más reciente del recurso afectado.
Por ejemplo, si enumeras eventos sobre miembros nuevos del espacio, el servidor devuelve 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 contendrá un recurso Membership
vacío.
Para enumerar los eventos de un espacio, el usuario autenticado o la app de Chat deben ser miembros del espacio.
Requisitos previos
Node.js
- Una cuenta de Google Workspace para empresas o Enterprise con acceso a Google Chat
- 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, un ícono y una descripción para tu app de Chat.
- Instala la biblioteca cliente de Cloud de Node.js.
- Crea credenciales de acceso según cómo quieras autenticar tu solicitud a la API de Google Chat:
- Para autenticarte como usuario de Chat, crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
credentials.json
en 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
- Una cuenta de Google Workspace para empresas o Enterprise con acceso a Google Chat
- 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, un ícono y una descripción para tu app de Chat.
- Instala la biblioteca cliente de Cloud de Python.
- Crea credenciales de acceso según cómo quieras autenticar tu solicitud a la API de Google Chat:
- Para autenticarte como usuario de Chat, crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
credentials.json
en 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 de espacio (autenticación del usuario)
Para enumerar los eventos de 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 permiso más restrictivo que permita que tu app siga funcionando. Para elegir un alcance, consulta la Descripción general de la autenticación y la autorización.
Llama al método
ListSpaceEvents()
y pasa elfilter
de los tipos de eventos que se incluirán en la lista. Debes especificar al menos un tipo de evento y también puedes filtrar por fecha. Para obtener una lista de los tipos de eventos compatibles, consulta el campoeventType
del recursoSpaceEvent
en la documentación de referencia.
En el siguiente ejemplo, se enumeran los eventos relacionados con las nuevas membresías y los mensajes en un espacio:
Node.js
Para ejecutar este ejemplo, reemplaza SPACE_NAME
por el ID del name
del espacio.
Puedes obtener el ID llamando al método ListSpaces()
o desde la URL del espacio.
La API de Chat devuelve una lista paginada de eventos del espacio sobre mensajes y membresías nuevos.
Enumera eventos de espacio (autenticación de la app de Chat)
La autenticación de la app requiere la aprobación del administrador una sola vez.
Para enumerar los eventos de 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 permiso más restrictivo que permita que tu app siga funcionando. 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.messages.readonly
https://www.googleapis.com/auth/chat.app.spaces
- Llama al método
list
en el recursospaceEvents
. - Pasa el
name
del espacio del que se enumerarán los mensajes. - Pasa un
filter
para consultar tipos de eventos específicos.
Crea una clave de API
Para llamar a un método de la API de la versión preliminar para desarrolladores, debes usar una versión preliminar para desarrolladores no pública del documento de descubrimiento de la API. Para autenticar la solicitud, debes pasar una clave de API.
Para crear la clave de API, abre el proyecto de Google Cloud de tu app y haz lo siguiente:
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > Clave de API.
- Se mostrará tu nueva clave de API.
- Haz clic en Copiar para copiar tu clave de API y usarla en el código de tu app. La clave de API también se puede encontrar en la sección "Claves de API" de las credenciales de tu proyecto.
- Para evitar el uso no autorizado, te recomendamos restringir dónde y para qué APIs se puede usar la clave de API. Para obtener más detalles, consulta Agrega restricciones de API.
Escribe un script que llame a la API de Chat
A continuación, te mostramos cómo enumerar eventos de espacios 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.readonly` 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.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces"] 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, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY') # 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:
API_KEY
: Es la clave de API que creaste para compilar el extremo de servicio de la API de Chat.SPACE_NAME
: Es el nombre de un espacio, que puedes obtener del métodospaces.list
de la API de Chat o de 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 devuelve una lista paginada de eventos del espacio sobre mensajes y membresías nuevos.