Publicado por Wesley Chun (@wescpy), representante de programadores, G Suite

Recientemente, presentamos la disponibilidad general de Hangouts Chat. Esta plataforma de mensajería de última generación ofrece a los usuarios de G Suite un nuevo lugar para comunicarse y colaborar en equipo. Incluye archivo y búsqueda, una mejor integración con G Suite y la capacidad de crear salas de chat independientes con subprocesos. La nueva función clave para los desarrolladores es un marco de trabajo para bots y una API. Ya sea para automatizar tareas comunes, consultar información o realizar otras tareas complejas, los bots pueden transformar notablemente la manera en la que trabajamos.

Además de respuestas en texto sin formato, Hangouts Chat también puede mostrar respuestas del bot con interfaces de usuario (IU) mejoradas llamadas tarjetas que pueden exhibir información de encabezado, datos estructurados, imágenes, vínculos y botones, entre otros elementos. Además, los usuarios pueden interactuar con estos componentes y, posiblemente, actualizar la información que se muestra. En este último episodio del G Suite Dev Show, los desarrolladores aprenden a crear un bot que contiene una tarjeta de actualización interactiva.


Como puedes ver en el video, lo más importante cuando los bots reciben un mensaje es determinar el tipo de evento y tomar la medida adecuada. Por ejemplo, un bot realizará todo el “papeleo” requerido cuando se agregue a una sala o un mensaje directo (MD) o se quite de ellos, lo que normalmente se denomina “espacio” en la jerga.

La situación más probable implica recibir un mensaje común enviado por los usuarios; la mayoría de los bots “hacen lo suyo” para abordar la solicitud. El último tipo de evento ocurre cuando un usuario hace clic en una tarjeta interactiva. De forma similar a cuando se recibe un mensaje estándar, un bot realiza las tareas requeridas, que incluyen la posible actualización de la tarjeta. A continuación, te mostramos un seudocódigo que resume estos cuatro tipos de eventos y representa lo que haría un bot según el tipo de evento:
function processEvent(req, rsp) {
  var event = req.body; // event type received
  var message;          // JSON response message

  if (event.type == 'REMOVED_FROM_SPACE') {
      // no response as bot removed from room
      return;

  } else if (event.type == 'ADDED_TO_SPACE') {
    // bot added to room; send welcome message
    message = {text: 'Thanks for adding me!'};

  } else if (event.type == 'MESSAGE') {
    // message received during normal operation
    message = responseForMsg(event.message.text);

  } else if (event.type == 'CARD_CLICKED') {
    // user-click on card UI
    var action = event.action;
    message = responseForClick(
        action.actionMethodName, action.parameters);
  }

  rsp.send(message);
};

El seudocódigo del bot y el bot que se muestran en el video responden de forma síncrona. Los bots que realizan las operaciones más lentas o aquellos que emiten notificaciones fuera de banda pueden enviar mensajes a espacios de forma asíncrona . Esto incluye mensajes, como notificaciones de tareas terminadas, alertas si se cae un servidor y envíos de pings al equipo de ventas cuando se agrega un nuevo líder al sistema de CRM (administración de relaciones con clientes).

Hangouts Chat supera en compatibilidad a JavaScript o Python y a Google Apps Script o Google App Engine. Si bien usar JavaScript en la secuencia de comandos de las apps es una de las maneras más rápidas y sencillas de poner en línea un bot dentro de tu organización, puede extraerse fácilmente a Node.js para acceder a una amplia variedad de opciones de hosting. De igual manera, App Engine permite una mayor escalabilidad y admite otros lenguajes (Java, PHP, Go, etc.) además de Python. El bot también puede extraerse a Flask para acceder a más opciones de hosting. Una ventaja clave es la flexibilidad de la plataforma: los desarrolladores pueden usar cualquier lenguaje, pila o nube para crear y alojar sus implementaciones de bots. Para funcionar, los bots solo deben poder aceptar solicitudes HTTP POST provenientes del servicio Hangouts Chat.

En Google I/O 2018 la semana pasada, los líderes del equipo de Hangouts Chat y yo proporcionamos una descripción general del marco de trabajo para bots más extensa y de nivel superior. Este recorrido integral del marco de trabajo incluye varias demostraciones de ejemplos de bots en tiempo real en diferentes lenguajes y plataformas. Mira nuestra sesión de aproximadamente 40 minutos, a continuación.


Para comenzar, mira la entrada sobre el lanzamiento del marco de trabajo para bots. Mira también esta entrada para obtener información más detallada sobre la versión de Python App Engine del bot de votación que se muestra en el video. Si deseas más información sobre el desarrollo de bots para Hangouts Chat, lee las guías de conceptos y la guía práctica para crear bots. Puedes compilar bots para tu organización, para tus clientes o para el mundo. ¡Esperamos ansiosos conocer los fantásticos bots que compilarás!