En esta guía, se explica cómo usar el método get()
del 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 en sus recursos secundarios, como mensajes, reacciones y membresías. Para obtener información sobre los tipos de eventos admitidos, consulta el campo eventType
del recurso SpaceEvent
en la documentación de referencia.
Puedes solicitar eventos hasta 28 días antes del momento 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 devolverá el recurso Message
actualizado en la carga útil del evento.
Para llamar a este método, debes usar la autenticación de usuarios. Para obtener un evento, el usuario autenticado debe ser miembro del espacio en el que ocurrió el evento.
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.
Obtén detalles sobre un evento de espacio (autenticación del 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 siga funcionando.
- Llama al método
GetSpaceEvent()
y pasa elname
del evento de espacio que se obtendrá.
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.
Para ejecutar esta muestra, reemplaza lo siguiente:
SCOPE_NAME
: Es un alcance de autorización basado en el tipo de evento. Por ejemplo, si recibes un evento de espacio sobre una membresía nueva, usa el alcancechat.memberships.readonly
, con el formatohttps://www.googleapis.com/auth/chat.memberships.readonly
. Puedes obtener el tipo de evento del métodoListSpaceEvents()
. Para obtener información sobre cómo usar este método, consulta Cómo enumerar eventos de un espacio.SPACE_NAME
: Es el ID delname
del espacio. Puedes obtener el ID llamando al métodoListSpaces()
o desde la URL del espacio.SPACE_EVENT_NAME
: Es el ID delname
del evento de espacio. Puedes obtener el ID del métodoListSpaceEvents()
. Para obtener información sobre cómo usar este método, consulta Cómo enumerar eventos de un espacio.
La API de Chat devuelve 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 del administrador una sola vez.
Para obtener detalles sobre un evento de espacio de un espacio con autenticación de la app con 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
get
en el recursospaceEvents
. - Pasa el
name
del espacio para obtener los detalles del evento.
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 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.
- En tu directorio de trabajo, crea un archivo llamado
chat_spaceevents_get_app.py
. 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.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().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()
En el código, reemplaza lo siguiente:
API_KEY
: Es la clave de API que creaste para compilar el extremo del 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.SPACE_EVENT_NAME
: Es el ID delname
del evento de espacio. Puedes obtener el ID del métodoListSpaceEvents()
. Para obtener información sobre cómo usar este método, consulta Cómo enumerar eventos de un espacio.
En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_spaceevents_get_app.py
La API de Chat devuelve una lista paginada de eventos del espacio sobre mensajes y membresías nuevos.