En esta página, se explica cómo usar la API de Google Workspace Events para crear un a un recurso de Google Workspace. Una suscripción a Google Workspace Permite que la app reciba información sobre los eventos de Google Workspace, que representar cambios en un recurso de Google Workspace. Para obtener información sobre qué recursos y tipos de eventos admite la API de Google Workspace Events, consulta la descripción general de la API de Google Workspace Events.
En esta página, se incluyen los siguientes pasos para crear una cuenta de Google Workspace suscripción:
- Configurar el entorno
- Crearás un tema de Google Cloud Pub/Sub y suscríbete a él. Este tema se usa como un extremo para recibir eventos de Google Workspace.
- Llama a la API de Eventos de Google Workspace
create()
. en laSubscription
recurso. - Prueba tu suscripción a Google Workspace para asegurarte de que tu recibe eventos a los que estás suscrito.
- De forma opcional, configura cómo enviar eventos a un extremo para tu app que tu aplicación 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, sigue estos pasos:
- Instala Google Cloud CLI.
- Para
inicializa la CLI de
gcloud
y ejecuta el siguiente código:
gcloud init
- Un proyecto de Google Cloud con la facturación habilitada. Para las suscripciones a Chat, debes habilitar la API de Chat en tu proyecto de Cloud y configura el Nombre de la app, la URL del avatar y la Descripción . Para obtener más información, consulta Compila una app de Google Chat.
- Requiere la autenticación del usuario con la pantalla de consentimiento de OAuth configurada para la aplicación. Cuando configuras la pantalla de consentimiento, debes especificar un alcance para admitir cada tipo de evento de la suscripción. Para configurar el consentimiento pantalla e identificar los alcances requeridos, consulta Elige los permisos.
- Un proyecto de Apps Script:
- Usa tu proyecto de Google Cloud en lugar del predeterminado que crea automáticamente Apps Script
- En el caso de los permisos que agregaste para configurar la pantalla de consentimiento de OAuth, también debes agregar el
los permisos al archivo
appsscript.json
en tu proyecto de Apps Script. Por ejemplo:
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
- Habilitar
el servicio avanzado
Google Workspace Events
.
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
- Para usar los comandos de Google Cloud CLI en esta guía, sigue estos pasos:
- Instala Google Cloud CLI.
- Para
inicializa la CLI de
gcloud
y ejecuta el siguiente código:
gcloud init
- Un proyecto de Google Cloud con la facturación habilitada. Para las suscripciones a Chat, debes habilitar la API de Chat en tu proyecto de Cloud y configura el Nombre de la app, la URL del avatar y la Descripción . Para obtener más información, consulta Compila una app de Google Chat.
- Requiere la autenticación del usuario con la pantalla de consentimiento de OAuth configurada para la aplicación. Cuando configuras la pantalla de consentimiento, debes especificar un alcance para admitir cada tipo de evento de la suscripción. Para configurar el consentimiento pantalla e identificar los alcances requeridos, consulta Elige los permisos.
Configura tu entorno
En la siguiente sección, se explica cómo configurar tu entorno antes de crearlo una suscripción a Google Workspace.
Habilita la API de Google Workspace Events 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 API de Google Workspace Events y API de Pub/Sub:
gcloud
En el directorio de trabajo, accede a tu Cuenta de Google:
gcloud auth login
Configura el proyecto de Cloud para tu app:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_ID
por el ID del proyecto del proyecto de Cloud para tu app.Habilita la API de Google Workspace Events y Google Cloud Pub/Sub API:
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 URI autorizados relacionados con tu aplicación:
- Apps del cliente (JavaScript): En Orígenes autorizados de JavaScript, haz clic en Agregar URI. Luego, ingresa un URI para usar en las solicitudes del navegador. Esto identifica los dominios desde los cuales tu aplicación puede enviar solicitudes de API al servidor OAuth 2.0.
- Apps del servidor (Java, Python y más): en Authorized redirect URIs, haz clic en Add 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 de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
Anota el ID de cliente. Los secretos del cliente no se usan para las aplicaciones web.
- Haz clic en Aceptar. La credencial creada recientemente aparece en ID 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 la sección “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 la “Huella digital del certificado SHA-1” ingresa tu huella digital del certificado SHA-1 generada.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID 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 la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En "ID del paquete", ingresa el identificador de paquete como aparece en el archivo
Info.plist
de la app. - Opcional: Si tu aplicación aparece en la App Store de Apple, ingresa el ID de la tienda de aplicaciones.
- Opcional: En "ID de equipo" , ingresa la cadena única de 10 caracteres generada por Apple y asignada a tu equipo.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID 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 > Aplicación de Chrome.
- En la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En "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 del desarrollador de Chrome Web Store.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID 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 > Aplicación 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 de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial nueva aparece en ID de cliente de OAuth 2.0.
TVs y Dispositivos de entrada limitados
- 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 la sección “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 de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID 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 la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En "ID de tienda", ingresa el valor único de 12 caracteres de ID de Microsoft Store de tu app. Puedes encontrar este ID en la URL de Microsoft Store de tu app y en el Centro de socios.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID de cliente de OAuth 2.0".
Descarga el archivo JSON del secreto del cliente
El archivo de secreto del cliente es una representación JSON del ID de cliente de OAuth credenciales 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 ID de cliente OAuth 2.0, haz clic en el ID de cliente que creaste.
Haz clic en Descargar 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 al tema. El tema de Pub/Sub funciona de notificaciones en el que tu suscripción a Google Workspace recibe eventos.
Para obtener más información sobre la creación y administración de temas de Pub/Sub, consulta la interfaz de Pub/Sub documentación de Google Cloud.
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 de Pub/Sub:
Asegúrate de que esté seleccionado el proyecto de Cloud para tu app.
Haz clic en
Crear tema y, luego, 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 lo nombra
suscripción predeterminada similar al nombre de tu tema, como
workspace-events-topic-sub
- Opcional: Actualiza o configura propiedades adicionales de tu tema.
- Ingresa un nombre para tu tema, como
Haz clic en Crear. El nombre completo de tu tema tiene el siguiente formato:
projects/PROJECT_ID/topics/TOPIC_ID
Lo usarás 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 el Permisos.
- Haz clic en Agregar principal.
- En el campo Agregar principales, agrega la cuenta de servicio para la
de Google Workspace que entrega eventos a tu
suscripción:
- Para los eventos de Chat,
chat-api-push@system.gserviceaccount.com
- Para los eventos de Meet,
meet-api-event-push@system.gserviceaccount.com
- Para los eventos de Chat,
- En el menú Asignar roles, selecciona
Pub/Sub Publisher
. - Haz clic en Guardar. La actualización de los permisos puede tardar unos minutos. de tu tema.
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, como comoworkspace-events-topic
.El resultado muestra el nombre completo del tema, con el siguiente formato:
projects/PROJECT_ID/topics/TOPIC_ID
Anota el nombre y asegúrate de que el valor de PROJECT_ID es el ID del proyecto de Cloud. para tu app. Usarás el nombre del tema en el siguiente paso y para crear la suscripción a Google Workspace.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
: El nombre completo del tema, que es el el resultado del paso anterior. Con formato deprojects/PROJECT_ID/topics/TOPIC_ID
GOOGLE_WORKSPACE_APPLICATION
: El 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
La actualización de los permisos de tu tema puede tardar unos minutos.
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 la 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 en las que quieres supervisar los eventos.
Elige e identifica el recurso de destino
En una suscripción de Google Workspace, el recurso de destino es el
Recurso de Google Workspace que supervisas para detectar eventos. El objetivo
se representa en el campo targetResource
de la suscripción y tiene el formato
el 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, consulta las siguientes secciones para aprender a identificar y formatear el recurso objetivo.
Identifica un recurso objetivo para Chat
Recurso de destino | Formato | Limitaciones |
---|---|---|
Espacio |
donde SPACE es el ID en el
nombre del 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 Google Cuenta. |
Todos los espacios de un usuario |
|
La suscripción solo recibe eventos de los espacios en los que se encuentra el usuario a un miembro a través de su Cuenta de Google o de Google Workspace. |
Usuario |
donde USER es el ID en el
nombre del 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 en nombre de otros usuarios. |
Identifica un recurso objetivo para Meet
Recurso de destino | Formato | Limitaciones (si corresponde) |
---|---|---|
Sala 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
donde USER es el ID en el
Campo |
La suscripción recibe eventos sobre salas de reuniones en los que la usuario es uno de los siguientes:
|
Crea una suscripción a Google Workspace
Para crear una suscripción, usa las APIs de Google Workspace Events
subscriptions.create()
para crear un
Subscription
recurso. Especifica los siguientes campos:
targetResource
: Un espacio de Google Workspace que identificaste en el sección anterior, con el formato de su nombre de recurso completo.eventTypes
: Es un array de uno o más tipos de eventos sobre los que deseas recibir. el recurso. Por ejemplo, si tu app solo necesita conocer los mensajes nuevos publicado en un espacio de Chat, la app puede suscribirse a los eventos sobre los mensajes creados.notificationEndpoint
: Es un extremo de notificación en el que La suscripción a Google Workspace entrega eventos. Se usa el Tema de Pub/Sub que creaste en la sección anterior.payloadOptions
: opciones para especificar la cantidad de datos de recursos que se incluirán en la carga útil del evento. Esta configuración afecta la fecha y hora de vencimiento de tu suscripción. Para obtener más información, consulta la sección Evento datos categóricos.
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. con el nombre
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. a los que te suscribes, con el formato de su nombre completo de recurso. Para Por ejemplo, para suscribirte a un espacio de Google Chat con el ID de espacioAAAABBBB
, usa//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: Uno o más tipos de eventos a los que quieres suscribirte en el recurso de destino. Asignar formato array de cadenas, como'google.workspace.chat.message.v1.created'
TOPIC_NAME
: Es el nombre completo del tema de Pub/Sub que que creaste en tu proyecto de Cloud. Con formato deprojects/PROJECT_ID/topics/TOPIC_ID
RESOURCE_DATA
: un valor booleano que especifica si el La suscripción incluye datos de recursos en la carga útil:True
: Incluye todos los datos de recursos. Para limitar qué campos incluido, agregafieldMask
y especifica, al menos, un campo para el recurso modificado. Solo las suscripciones a los recursos de Chat, como los datos de los 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 el 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 permisos de OAuth que admiten 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. a los que te suscribes, con el formato de su nombre completo de recurso. Para Por ejemplo, para suscribirte a un espacio de Google Chat con el ID de espacioAAAABBBB
, usa//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: Uno o más tipos de eventos a los que quieres suscribirte en el recurso de destino. Asignar formato array de cadenas, como'google.workspace.chat.message.v1.created'
TOPIC_NAME
: Es el nombre completo del tema de Pub/Sub que que creaste en tu proyecto de Cloud. Con formato deprojects/PROJECT_ID/topics/TOPIC_ID
RESOURCE_DATA
: un valor booleano que especifica si el La suscripción incluye datos de recursos en la carga útil:True
: Incluye todos los datos de recursos. Para limitar qué campos incluido, agregafieldMask
y especifica, al menos, un campo para el recurso modificado. Solo las suscripciones a los recursos de Chat, como los datos de los recursos.False
: Excluye los datos de recursos.
Para crear la suscripción a Google Workspace, ejecuta lo siguiente en tu terminal:
python3 create_subscription.py
La API de Google Workspace Events muestra un conjunto de datos de larga duración
que contiene el
del recurso Subscription
que creaste.
Prueba tu suscripción a Google Workspace
Para probar que estás recibiendo eventos de Google Workspace, puedes activar una y extraer mensajes a la suscripción de Pub/Sub.
Para probar tu suscripción a Google Workspace, sigue estos pasos:
Consola de Google Cloud
Activa uno o más tipos de eventos en el recurso objetivo de tu suscripción a Google Workspace. Por ejemplo, si te suscribiste a las nuevas mensajes en un espacio de Chat y publicar un mensaje en él.
En la consola de Google Cloud, ve a la página de Pub/Sub:
Asegúrate de que esté seleccionado el proyecto de Cloud para tu app.
En el menú de Pub/Sub, haz clic en Suscripciones.
En la tabla, busca la suscripción a Pub/Sub de tu tema y haz clic en el nombre de la suscripción.
Haz clic en la pestaña Mensajes.
Haz clic en Extraer. Un evento puede tardar unos minutos en generar una mensaje de Pub/Sub.
gcloud
Activa uno o más tipos de eventos en el recurso objetivo de tu suscripción a Google Workspace. Por ejemplo, si te suscribiste a las nuevas mensajes en un espacio de Chat y publicar un mensaje en él.
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 formato deprojects/SUBSCRIPTION_ID/subscriptions/SUBSCRIPTION_ID
MESSAGE_COUNT
: La cantidad máxima de mensajes de Pub/Sub que deseas extraer.
Un evento puede tardar unos minutos en generar una instancia de Pub/Sub mensaje.
Para cada evento de Google Workspace que activaste, aparece un mensaje entregado a tu suscripción a Pub/Sub que contiene el evento. Para obtener más información, consulta Recibe eventos como mensajes de Google Cloud Pub/Sub.
Configura la forma en que tu app recibe eventos
La suscripción a Pub/Sub que creaste se basa en extracciones. Después de realizar la prueba que tu suscripción a Pub/Sub, puedes actualizar el tipo de entrega para cambiar tu app recibe eventos. Por ejemplo, puedes configurar el entorno suscripción a un tipo de entrega de envío, para que tu app pueda recibir eventos directamente a un extremo de la app.
Para obtener más información sobre la configuración de una suscripción a Pub/Sub, consulta la documentación de Pub/Sub documentación.