En esta página, se explica cómo usar la API de Google Workspace Events para crear una suscripción a un recurso de Google Workspace. Una suscripción a Google Workspace permite que tu app reciba información sobre los eventos de Google Workspace, que representan cambios en un recurso de Google Workspace. Para obtener información sobre los recursos y tipos de eventos que admite la API de Google Workspace Events, consulta la descripción general de la API de Google Workspace Events.
Esta página incluye los siguientes pasos para crear una suscripción a Google Workspace:
- Configura el entorno.
- Crea un tema de Google Cloud Pub/Sub y suscríbete a él. Usas este tema como un extremo para recibir eventos de Google Workspace.
- Llama al método
create()
de la API de Google Workspace Events en el recursoSubscription
. - Prueba tu suscripción a Google Workspace para asegurarte de que tu tema de Pub/Sub reciba los eventos a los que te suscribiste.
- De manera opcional, configura cómo enviar eventos a un extremo para tu app, de modo que esta pueda procesar el evento y, si es necesario, tomar medidas.
Requisitos previos
Apps Script
- Para usar los comandos de Google Cloud CLI en esta guía, haz lo siguiente:
- Instala Google Cloud CLI.
- Para
inicializar la CLI de
gcloud
, ejecuta el siguiente código:
gcloud init
- Un proyecto de Google Cloud con la facturación habilitada Para las suscripciones a Chat, también debes habilitar la API de Chat en tu proyecto de Cloud y configurar los campos Nombre de la app, URL del avatar y Descripción. Para obtener más información, consulta Cómo compilar una app de Google Chat.
- Requiere autenticación del usuario con la pantalla de consentimiento de OAuth configurada para la app. Cuando configures la pantalla de consentimiento, debes especificar un alcance para admitir cada tipo de evento de la suscripción. Para configurar la pantalla de consentimiento y, luego, identificar los permisos necesarios, consulta Cómo elegir los permisos.
- Un proyecto de Apps Script:
- Usa tu proyecto de Google Cloud en lugar del predeterminado que crea Apps Script automáticamente.
- Para los permisos que agregaste para configurar la pantalla de consentimiento de OAuth, también debes agregar los permisos al archivo
appsscript.json
en tu proyecto de Apps Script. Por ejemplo: - Habilita
el servicio avanzado
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Python
- Python 3.6 o una versión posterior
- 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 la interfaz de línea de comandos:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Para usar los comandos de Google Cloud CLI en esta guía, haz lo siguiente:
- Instala Google Cloud CLI.
- Para
inicializar la CLI de
gcloud
, ejecuta el siguiente código:
gcloud init
- Un proyecto de Google Cloud con la facturación habilitada Para las suscripciones a Chat, también debes habilitar la API de Chat en tu proyecto de Cloud y configurar los campos Nombre de la app, URL del avatar y Descripción. Para obtener más información, consulta Cómo compilar una app de Google Chat.
- Requiere autenticación del usuario con la pantalla de consentimiento de OAuth configurada para la app. Cuando configures la pantalla de consentimiento, debes especificar un alcance para admitir cada tipo de evento de la suscripción. Para configurar la pantalla de consentimiento y, luego, identificar los permisos necesarios, consulta Cómo elegir los permisos.
Configura tu entorno
En la siguiente sección, se explica cómo configurar tu entorno antes de crear una suscripción a Google Workspace.
Habilita la API de Eventos de Google Workspace y la API de Google Cloud Pub/Sub
Antes de usar las APIs de Google, debes activarlas en un proyecto de Google Cloud. Puedes activar una o más APIs en un solo proyecto de Google Cloud.Consola de Google Cloud
En la consola de Google Cloud, abre el proyecto de Google Cloud de tu app y habilita las APIs de Google Workspace Events y Pub/Sub:
gcloud
En tu directorio de trabajo, accede a tu Cuenta de Google:
gcloud auth login
Establece tu proyecto en el proyecto de Cloud de tu app:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_ID
por el ID del proyecto del proyecto de Cloud de tu app.Habilita la API de eventos de Google Workspace y la API de Google Cloud Pub/Sub:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
Crea credenciales de ID de cliente de OAuth
Elige tu tipo de aplicación para obtener instrucciones específicas sobre cómo crear un ID de cliente de OAuth:
Aplicación web
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Aplicación web.
- En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- Agrega los URIs autorizados relacionados con tu app:
- Aplicaciones del cliente (JavaScript): En Orígenes de JavaScript autorizados, haz clic en Agregar URI. Luego, ingresa un URI para usarlo en las solicitudes del navegador. Esto identifica los dominios desde los que tu aplicación puede enviar solicitudes a la API al servidor de OAuth 2.0.
- Apps del servidor (Java, Python y mucho más): En URI de redireccionamiento autorizados, haz clic en Agregar URI. Luego, ingresa un URI de extremo al que el servidor de OAuth 2.0 pueda enviar respuestas.
- Haz clic en Crear. Aparecerá la pantalla Se creó el cliente de OAuth, que muestra tu nuevo ID de cliente y secreto de cliente.
Toma nota del ID de cliente. Los secretos de cliente no se usan para aplicaciones web.
- Haz clic en Aceptar. La credencial recién creada aparecerá en IDs de cliente de OAuth 2.0.
Android
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Android.
- En el campo "Nombre", escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En el campo "Nombre del paquete", ingresa el nombre del paquete de tu archivo
AndroidManifest.xml
. - En el campo "Huella digital del certificado SHA-1", ingresa la huella digital del certificado SHA-1 que generaste.
- Haz clic en Crear. Aparecerá la pantalla Se creó el cliente de OAuth, que muestra tu nuevo ID de cliente.
- Haz clic en Aceptar. La credencial recién creada aparecerá en "IDs de cliente de OAuth 2.0".
iOS
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > iOS.
- En el campo "Nombre", escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En el campo "ID del paquete", ingresa el identificador de paquete que aparece en el archivo
Info.plist
de la app. - Opcional: Si tu app aparece en la App Store de Apple, ingresa el ID de la App Store.
- Opcional: En el campo "ID de equipo", ingresa la cadena única de 10 caracteres que genera Apple y se asigna a tu equipo.
- Haz clic en Crear. Aparecerá la pantalla Se creó el cliente de OAuth, que muestra tu nuevo ID de cliente y secreto de cliente.
- Haz clic en Aceptar. La credencial recién creada aparecerá en "IDs de cliente de OAuth 2.0".
App de Chrome
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > App para Chrome.
- En el campo "Nombre", escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En el campo "ID de aplicación", ingresa la cadena de ID única de 32 caracteres de tu app. Puedes encontrar este valor de ID en la URL de Chrome Web Store de tu app y en el Panel de desarrollador de Chrome Web Store.
- Haz clic en Crear. Aparecerá la pantalla Se creó el cliente de OAuth, que muestra tu nuevo ID de cliente y secreto de cliente.
- Haz clic en Aceptar. La credencial recién creada aparecerá en "IDs de cliente de OAuth 2.0".
App de escritorio
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > App para computadoras.
- En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- Haz clic en Crear. Aparecerá la pantalla Se creó el cliente de OAuth, que muestra tu nuevo ID de cliente y secreto de cliente.
- Haz clic en Aceptar. La credencial recién creada aparecerá en IDs de cliente de OAuth 2.0.
TVs y dispositivos de entrada limitada
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > TVs y dispositivos de entrada limitados.
- En el campo "Nombre", escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- Haz clic en Crear. Aparecerá la pantalla Se creó el cliente de OAuth, que muestra tu nuevo ID de cliente y secreto de cliente.
- Haz clic en Aceptar. La credencial recién creada aparecerá en "IDs de cliente de OAuth 2.0".
Plataforma universal de Windows (UWP)
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Plataforma universal de Windows (UWP).
- En el campo "Nombre", escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En el campo "ID de la tienda", ingresa el valor único de ID de Microsoft Store de 12 caracteres de tu app. Puedes encontrar este ID en la URL de Microsoft Store de tu app y en Partner Center.
- Haz clic en Crear. Aparecerá la pantalla Se creó el cliente de OAuth, que muestra tu nuevo ID de cliente y secreto de cliente.
- Haz clic en Aceptar. La credencial recién creada aparecerá en "IDs de cliente de OAuth 2.0".
Descarga el archivo JSON del secreto de cliente
El archivo de secreto de cliente es una representación JSON de las credenciales del ID de cliente de OAuth a las que tu app puede hacer referencia cuando proporciona credenciales.
En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
En IDs de cliente de OAuth 2.0, haz clic en el ID de cliente que creaste.
Haz clic en Download JSON.
Guarda el archivo como
client_secrets.json
.
Crea un tema de Pub/Sub y suscríbete a él
En esta sección, crearás un tema y una suscripción a Pub/Sub. Tu tema de Pub/Sub funciona como el extremo de notificación en el que tu suscripción a Google Workspace recibe eventos.
Para obtener más información sobre cómo crear y administrar temas de Pub/Sub, consulta la documentación de Pub/Sub.
Para crear un tema de Pub/Sub y suscribirte a él, haz lo siguiente:
Consola de Google Cloud
En la consola de Google Cloud, ve a la página Pub/Sub:
Asegúrate de que el proyecto de Cloud de tu app esté seleccionado.
Haz clic en
Crear tema y haz lo siguiente:- Ingresa un nombre para tu tema, como
workspace-events-topic
. - Deja seleccionada la opción Agregar una suscripción predeterminada. Pub/Sub le asigna un nombre similar al de tu tema a esta suscripción predeterminada, como
workspace-events-topic-sub
. - Opcional: Actualiza o configura propiedades adicionales para tu tema.
- Ingresa un nombre para tu tema, como
Haz clic en Crear. El nombre completo del tema tiene el formato
projects/PROJECT_ID/topics/TOPIC_ID
. Usarás este nombre completo en un paso posterior.Otorga acceso para publicar mensajes de Pub/Sub en tu tema:
- En la página de tu tema, ve al panel lateral y abre la pestaña Permisos.
- Haz clic en Agregar principal.
- En el campo Agregar principales, agrega la cuenta de servicio de la aplicación de Google Workspace que envía eventos a tu suscripción:
- Para eventos de chat, usa
chat-api-push@system.gserviceaccount.com
. - Para eventos de Meet,
meet-api-event-push@system.gserviceaccount.com
.
- Para eventos de chat, usa
- En el menú Asignar roles, selecciona
Pub/Sub Publisher
. - Haz clic en Guardar. Es posible que los permisos de tu tema tarden unos minutos en actualizarse.
gcloud
En tu proyecto de Cloud, ejecuta el siguiente comando para crear un tema:
gcloud pubsub topics create TOPIC_ID
Reemplaza
TOPIC_ID
por un ID único para tu tema, comoworkspace-events-topic
.En el resultado, se muestra el nombre completo del tema, con el formato
projects/PROJECT_ID/topics/TOPIC_ID
. Anota el nombre y asegúrate de que el valor de PROJECT_ID sea el ID del proyecto de Cloud de tu app. Usarás el nombre del tema en el siguiente paso y para crear la suscripción a Google Workspace más adelante.Otorga acceso para publicar mensajes en tu tema:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'
Reemplaza lo siguiente:
TOPIC_NAME
: Es el nombre completo del tema, que es el resultado del paso anterior. Tiene el formatoprojects/PROJECT_ID/topics/TOPIC_ID
.GOOGLE_WORKSPACE_APPLICATION
: Es la aplicación de Google Workspace que debe entregar eventos a tu suscripción:- Para recibir eventos de Chat, usa
chat-api-push@system.gserviceaccount.com
. - Para recibir eventos de Meet, usa
meet-api-event-push@system.gserviceaccount.com
.
- Para recibir eventos de Chat, usa
Es posible que los permisos de tu tema tarden unos minutos en actualizarse.
Crea una suscripción a Pub/Sub para el tema.
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME
Reemplaza lo siguiente:
SUBSCRIPTION_NAME
: Es un nombre para tu suscripción, comoworkspace-events-subscription
.TOPIC_NAME
: Es el nombre del tema que creaste en el paso anterior.
Suscríbete a un recurso de Google Workspace
En esta sección, te suscribes al recurso de Google Workspace que deseas supervisar en busca de eventos.
Elige y, luego, identifica el recurso de destino
En una suscripción a Google Workspace, el recurso de destino es el recurso de Google Workspace que supervisas para detectar eventos. El recurso objetivo se representa en el campo targetResource
de la suscripción, con el formato del nombre completo del recurso. Por ejemplo, para una suscripción que supervisa un espacio de Google Chat (spaces/AAAABBBBBBB
), el valor de targetResource
es //chat.googleapis.com/spaces/AAAABBBBBBB
.
Antes de crear la suscripción, usa las siguientes secciones para aprender a identificar y dar formato al recurso de destino.
Identifica un recurso de destino para Chat
Recurso de destino | Formato | Limitaciones |
---|---|---|
Espacio |
en el que SPACE es el ID en el
nombre de recurso del recurso |
El usuario de Chat que autoriza la suscripción debe ser miembro del espacio a través de su cuenta de Google Workspace o de Google. |
Todos los espacios de un usuario |
|
La suscripción solo recibe eventos de los espacios de los que el usuario es miembro a través de su cuenta de Google Workspace o de Google. |
Usuario |
en el que USER es el ID en el
nombre de recurso del recurso |
La suscripción solo recibe eventos sobre el usuario que autorizó la suscripción. Un usuario no puede autorizar una suscripción en nombre de otros usuarios. |
Identifica un recurso de destino para Meet
Recurso de destino | Formato | Limitaciones (si corresponde) |
---|---|---|
Espacio de reuniones | //meet.googleapis.com/spaces/SPACE
donde SPACE es el ID en el
nombre del recurso del recurso |
|
Usuario | //cloudidentity.googleapis.com/users/USER
En el que USER es el ID en el campo
|
La suscripción recibe eventos sobre espacios de reunión en los que el usuario es una de las siguientes opciones:
|
Crea una suscripción a Google Workspace
Para crear una suscripción, usa el método subscriptions.create()
de la API de Google Workspace Events para crear un recurso Subscription
. Especifica los siguientes campos:
targetResource
: Es un elemento de Google Workspace que identificaste en la sección anterior, con el formato de su nombre de recurso completo.eventTypes
: Es un array de uno o más tipos de eventos que deseas recibir sobre el recurso. Por ejemplo, si tu app solo necesita saber sobre los mensajes nuevos que se publican en un espacio de Chat, puede suscribirse a eventos sobre los mensajes creados.notificationEndpoint
: Es un extremo de notificación en el que tu suscripción a Google Workspace entrega eventos. Usas el tema de Pub/Sub que creaste en la sección anterior.payloadOptions
: Son opciones para especificar cuántos datos de recursos se incluirán en la carga útil del evento. Esta configuración afecta el tiempo de vencimiento de tu suscripción. Para obtener más información, consulta Datos de eventos.
Para crear una suscripción a Google Workspace, sigue estos pasos:
Apps Script
En tu proyecto de Apps Script, crea un nuevo archivo de secuencia de comandos llamado
createSubscription
y agrega el siguiente código:function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }
Reemplaza lo siguiente:
TARGET_RESOURCE
: Es el recurso de Google Workspace al que te suscribes, con el formato de su nombre completo. Por ejemplo, para suscribirte a un espacio de Google Chat con el IDAAAABBBB
, usa//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: Uno o más tipos de eventos a los que deseas suscribirte en el recurso de destino. Dale formato como un array de cadenas, como'google.workspace.chat.message.v1.created'
.TOPIC_NAME
: Es el nombre completo del tema de Pub/Sub que creaste en tu proyecto de Cloud. Tiene el formatoprojects/PROJECT_ID/topics/TOPIC_ID
.RESOURCE_DATA
: Es un valor booleano que especifica si la suscripción incluye datos de recursos en la carga útil:True
: Incluye todos los datos de recursos. Para limitar los campos que se incluyen, agrega el campofieldMask
y especifica al menos un campo para el recurso modificado. Solo las suscripciones a recursos de chat admiten la inclusión de datos de recursos.False
: Excluye los datos de recursos.
Para crear la suscripción a Google Workspace, ejecuta la función
createSubscription
en tu proyecto de Apps Script.
Python
En tu directorio de trabajo, crea un archivo llamado
create_subscription.py
y agrega el siguiente código:"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)
Reemplaza lo siguiente:
SCOPES
: Uno o más alcances de OAuth que admitan cada tipo de evento para la suscripción. Tiene el formato de un array de cadenas. Para enumerar varios permisos, sepáralos con comas. Por ejemplo,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
.TARGET_RESOURCE
: Es el recurso de Google Workspace al que te suscribes, con el formato de su nombre completo. Por ejemplo, para suscribirte a un espacio de Google Chat con el IDAAAABBBB
, usa//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: Uno o más tipos de eventos a los que deseas suscribirte en el recurso de destino. Dale formato como un array de cadenas, como'google.workspace.chat.message.v1.created'
.TOPIC_NAME
: Es el nombre completo del tema de Pub/Sub que creaste en tu proyecto de Cloud. Tiene el formatoprojects/PROJECT_ID/topics/TOPIC_ID
.RESOURCE_DATA
: Es un valor booleano que especifica si la suscripción incluye datos de recursos en la carga útil:True
: Incluye todos los datos de recursos. Para limitar los campos que se incluyen, agrega el campofieldMask
y especifica al menos un campo para el recurso modificado. Solo las suscripciones a recursos de chat admiten la inclusión de datos de recursos.False
: Excluye los datos de recursos.
Para crear la suscripción a Google Workspace, ejecuta lo siguiente en la terminal:
python3 create_subscription.py
La API de Google Workspace Events muestra una operación de larga duración completa que contiene la instancia del recurso Subscription
que creaste.
Prueba tu suscripción a Google Workspace
Para probar que recibes eventos de Google Workspace, puedes activar un evento y extraer mensajes a la suscripción a Pub/Sub.
Para probar tu suscripción a Google Workspace, haz lo siguiente:
Consola de Google Cloud
Activa uno o más tipos de eventos en el recurso de destino de tu suscripción a Google Workspace. Por ejemplo, si te suscribiste a mensajes nuevos en un espacio de Chat, publica un mensaje en el espacio.
En la consola de Google Cloud, ve a la página Pub/Sub:
Asegúrate de que el proyecto de Cloud de tu app esté seleccionado.
En el menú Pub/Sub, haz clic en Suscripciones.
En la tabla, busca la suscripción de Pub/Sub de tu tema y haz clic en su nombre.
Haz clic en la pestaña Mensajes.
Haz clic en Extraer. Un evento puede tardar unos minutos en generar un mensaje de Pub/Sub.
gcloud
Activa uno o más tipos de eventos en el recurso de destino de tu suscripción a Google Workspace. Por ejemplo, si te suscribiste a mensajes nuevos en un espacio de Chat, publica un mensaje en el espacio.
Ejecuta el siguiente comando:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack
Reemplaza lo siguiente:
PUBSUB_SUBSCRIPTION_NAME
: Es el nombre completo de tu suscripción a Pub/Sub, con el formatoprojects/SUBSCRIPTION_ID/subscriptions/SUBSCRIPTION_ID
.MESSAGE_COUNT
: Es la cantidad máxima de mensajes de Pub/Sub que deseas extraer.
Un evento puede tardar unos minutos en generar un mensaje de Pub/Sub.
Para cada evento de Google Workspace que activaste, se entrega un mensaje a tu suscripción a Pub/Sub que contiene el evento. Para obtener más información, consulta Cómo recibir eventos como mensajes de Google Cloud Pub/Sub.
Configura cómo tu app recibe eventos
La suscripción a Pub/Sub que creaste se basa en la extracción. Después de probar tu suscripción a Pub/Sub, puedes actualizar el tipo de publicación para cambiar la forma en que tu app recibe eventos. Por ejemplo, puedes configurar la suscripción a Pub/Sub en un tipo de entrega push para que tu app pueda recibir eventos directamente en un extremo de app.
Para obtener información sobre cómo configurar una suscripción de Pub/Sub, consulta la documentación de Pub/Sub.