Conecta una app de Chat con otros servicios y herramientas

En esta página, se describe cómo conectar una app de Google Chat con un servicio o una herramienta que no se encuentra en Google Chat. Si bien las apps de Chat son poderosas por sí solas, a menudo funcionan en conjunto con otros sistemas y requieren aplicaciones complementarias para conectar cuentas, autorizar el acceso a los datos, mostrar datos adicionales o configurar las preferencias del usuario.

Requisitos previos

Una app de Google Chat configurada para recibir eventos de interacción y responder a ellos Para crear una app de Chat interactiva, completa una de las siguientes guías de inicio rápido según la arquitectura de la app que quieras usar:

Solicita la configuración de la app de Chat a un usuario

Si completar una solicitud requiere una configuración adicional que no se puede realizar directamente en la app de Chat, devuelve una URL de configuración al usuario como parte de una respuesta normal o preséntala de forma privada, de la siguiente manera:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

Esto le indica a Google Chat que le presente al usuario una instrucción privada, en la que CONFIGURATION_URL es un vínculo que el usuario puede visitar para obtener autenticación, autorización o configuración adicionales. Una respuesta REQUEST_CONFIG es mutuamente exclusiva con un mensaje de respuesta normal. Se ignoran los textos, las tarjetas y otros atributos.

Completa la solicitud de configuración

Cada evento de interacción MESSAGE, ADDED_TO_SPACE y APP_COMMAND que recibe tu app de Chat también incluye el campo configCompleteRedirectUrl. Debes codificar esta URL en tu URL de configuración para usarla cuando se complete el proceso. El redireccionamiento a esta URL indica a Google Chat que se cumplió la solicitud de configuración.

Cuando se inicia tu app de Chat, el flujo depende del mensaje específico que se recibe. En respuesta a un mensaje como @app help, una app de Chat debería responder con un mensaje sin requerir configuración adicional.

Cuando se redirige correctamente a un usuario al configCompleteRedirectUrl proporcionado en el mensaje original, Google Chat realiza los siguientes pasos:

  1. Borra la instrucción que se mostró al usuario que inició la acción.
  2. Convertir el mensaje original en público para que lo vean los demás miembros del espacio
  3. Enviar el mensaje original a la misma app de Chat por segunda vez

Visitar un configCompleteRedirectUrl solo afecta un mensaje del usuario. Si un usuario intentó enviar mensajes a una app de Chat varias veces y, como resultado, recibió varias indicaciones, hacer clic en una indicación en particular y completar el proceso de autenticación y configuración solo afecta ese mensaje en particular. Los demás mensajes no se modifican.

Cuando un evento de interacción de MESSAGE se vuelve a enviar de esta manera, debe ser idéntico al evento original. Sin embargo, hay algunas situaciones en las que los eventos de interacción de MESSAGE pueden diferir. Por ejemplo, cuando un mensaje menciona la app de Chat A y la app de Chat B, el usuario puede editar el mensaje si la app de Chat A responde con un mensaje normal antes de autenticarse con la app de Chat B. En este caso, la app de chat B recibe el texto del mensaje editado después de que el usuario completa la autenticación y la configuración.

Autentica al usuario de Chat fuera de Chat

En algunos casos, como cuando se solicita autorización de OAuth para una API, tu app debe vincularse a una URL fuera de Chat y, al mismo tiempo, mantener la identidad del usuario. La mejor manera de identificar al usuario en estos casos es proteger la app de destino con el Acceso con Google.

Usa el token de identidad que se emitió durante el acceso para obtener el ID de usuario. El reclamo sub contiene el ID único del usuario y se puede correlacionar con el ID de usuario de Google Chat.

Si bien los dos IDs no son exactamente idénticos, se pueden forzar. Para forzar el valor del reclamo sub a un users/{user} de Google Chat, antepón el valor con users/. Por ejemplo, el valor de la reivindicación de 123 es equivalente al nombre de usuario users/123 en los mensajes a tu app de Chat.