Enviar mensaje desde línea de comandos a Rocket.Chat

webhooks-rocketchat

Hace unos días decidimos cambiarnos de Slack a Rocket.Chat, principalmente por el hecho de tener espacio limitado en las cuentas gratuitas del primero. Rocket.Chat es una aplicación bastante buena, sus puntos débiles que ahora veo es que las aplicaciones de móviles no son tan buenas, pero sobre todo, no puedes compartir hacia ella (desde otras aplicaciones), el clásico "Compartir con...", por lo menos no en iOS.

Dejando de lado eso, vamos a explicar como escribir mensajes desde un script (php) que puede ser desde una línea de comandos o de alguna página web.

Lo primero es crear un webhook de entrada, Menú - Administración - Integraciones - nueva integración - "Incoming Webhook", ahí establecemos las siguientes opciones:

habilitado - si
publicar al canal - #general
publicar como - nombre del bot ya existente, si no tienes ninguno hecho puedes usar rocket.cat 
y listo, 

Eso es todo, lo almacenamos y nos dará dos datos que usaremos: WebHook URL y token, esos datos son los que utilizaremos para enviar mensajes a una persona o un canal de nuestra instalación de Rocket.Chat.

<?php
   /* enviar mensaje a Rocket.Chat 
   * @toro 2017 https://tar.mx/tema/rocketchat 
   */
   $url = ""; //WEBHOOK_URL que ya incluye el TOKEN
   // 
   $data = [ "emoji"=>":robot:",
      "msg"=>"hola mundo...",
      "channel"=>"#general", //puede ser cualquier #canal o @usuario
   ];
   //
   $ch = curl_init(); 
   curl_setopt($ch, CURLOPT_POST,1);
   curl_setopt($ch, CURLOPT_VERBOSE,0);
   curl_setopt($ch, CURLOPT_POSTFIELDS, "payload=".json_encode($data));
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_URL,$url);
   $result = curl_exec($ch);
   print_r(json_decode($result));

En caso que se haya enviado el mensaje correctamente nos devolverá un json con el valor success en 1 o error en su defecto.

mensaje

Enviado el mensaje se ve como en la imagen, los mensajes enviados pueden ser texto simple o llevar imágenes, videos, etcétera. Aquí la referencia al api REST al enviar un mensaje. El ejemplo fue hecho en PHP y requiere tener el módulo CURL.

También podemos enviar desde consola con el comando curl

curl -X POST -d 'payload={"emoji":":robot:","msg":"hola mundo...","channel":"#general"}' WEBHOOK_URL

Software, Bots, RocketChat

por Jorge Martínez Mauricio :)

¿Algo que comentar?


Populares estos días

    Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊


    tar.mx es un blog personal de Jorge Martínez Mauricio