Rocket.chat Actualmente se ha dado una vuelta de tuerca a la forma en la que los equipos de desarrollo se comunican entre sí. Desentendiendose de las antiguas formas de comunicación por email, existen numerosas herramientas que permiten esta comunicación y que facilitan el flujo de información. De esta manera, se facilita que el desarrollo del producto se realice de manera más rápida. La más conocida de estas aplicaciones es Slack, que permite la creación de canales y grupos donde se organizan los diferentes equipos de trabajo.

¿Qué es Rocket.Chat exactamente?

Cuando pensamos en crear un sistema de comunicación, es prácticamente imposible no pensar en la forma de la que lo Slack lo hace. Rocket.Chat es un proyecto que se inspira en Slack para ofrecer una plataforma de comunicación open source para todo aquel que la quiera integrar en su proyecto.Ésta permite a cualquier compañía integrar de forma privativa un servicio de chat en el que se puede construir y evolucionar haciendolo un sistema propio.

La forma en la que se instala y despliega RocketChat es simple y directa, simplemente tenemos que introducir la siguiente línea en la consola de un sistema ubuntu:

snap install rocketchat-server

Y ya esta, el servidor de Rocket.Chat estará disponible en la dirección pertinente puerto 3000:

http://<ip-servidor>:3000

Si accedemos a esa dirección, lo primero que debemos hacer es crear un usuario mediante la interfaz que nos ofrece. Este primer usuario creado tomará el rol de administrador y es con quien podemos realizar las primeras configuraciones en el panel de control.

Sólo queda investigar todo lo que Rocket.Chat nos ofrece para modificarlo de manera que se ajuste de forma optima a nuestras necesidades.Rocket.Chat ofrece una documentación extensa y la puedes encontrar aquí.

Rocket.Chat : Comandos de iframe

Posiblemente uno de los usos que se da a Rocket.Chat es la integración en una plataforma web mediante el uso de un iframe. Simplemente añadiendo la dirección del servidor a la etiqueta iframe en tu documento HTML y la página de Rocket.Chat se mostrará según los atributos asignados.

En algún punto del desarrollo es posible que necesites crear el usuario dentro de la plataforma y que después se muestre el iframe con Rocket.Chat funcionando en él. En esta situación es preferible que nuestra aplicación inicie sesión automaticamente en Rocket.Chat sin obligar al usuario a introducir las credenciales en la interfaz del iframe.

Para ello necesitamos introducir unas líneas de código en nuestro archivo javascript correspondiente. Antes, debemos activar la integración iframe en el panel de control de Rocket.Chat. La ruta para ello es:

Administración > General > Iframe Integration

Una vez activado podemos ahora introducir el código siguiente:

document.querySelector('iframe').contentWindow.postMessage({
    externalCommand: 'login-with-token',
    token: authToken,
}, '*')

Se observa que es necesario el authToken que se puede obtener mediante la API usando el método de Login. Así pues, cuando se ejecute esas líneas de código, el iframe se actualizará iniciando sesión según el token suministrado. Ojo, hay que tener en cuenta que antes de querer iniciar sesión en el iframe, éste deberá cargarse completamente antes de iniciar el autologin.

Rocket.Chat: APIs

Uno de los usos que se le puede dar a tu plataforma de Rocket.Chat es la utilización de su APIRest. Rocket.Chat ofrece una extensa documentación para la utilización de su API y es practicamente inevitable su utilización cuando se hace uso de esta herramienta.

Uso de la API

Hay que tener en cuenta un par de aspectos antes de poder utilizar la API directamente. El primero de ellos es que a fecha de hoy, la API se encuentra en fase BETA. El segundo apunte tiene que ver con la seguridad, y es que debemos asegurarnos que el servidor se encuentre funcionando vía HTTPS y con un certificado SSL válido. Además hay que tener en cuenta:

  • Sólo realizar llamadas vía HTTPS
  • Recomendable implementar una estrategia de autorización por expiración de token.
  • Asegurarse de que el usuario tenga los permisos para sólo lo que esté pidiendo.

Teniendo en cuenta estos aspectos podemos configurar la utilización de la API de nuestro servidor en:

Administración > General > REST API

Para poder realizar la mayoría de las acciones mediante la API vamos a necesitar dos tokens distintos:

  • authToken: Token de autorización
  • userId: Identificador de usuario

Estos recursos se obtienen realizando un inicio de sesión mediante la API con un usuario con el rol adecuado. Del resultado obtendremos un JSON los datos que queremos. Para ello necesitaremos el nombre de usuario y la contraseña. La llamada será de tipo POST y tendrá el siguiente formato:

http://<ip-servidor>:3000/api/v1/login

Y los argumentos:

{ "username": "myusername", "password": "mypassword" }

Con esta información podremos realizar la mayoría de las acciones que nos proporciona la API de Rocket.Chat. Algunas de las acciones más interesantes son la creación de usuarios, canales o grupos privados. Para información más detallada consulta la documentación.

Web