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

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

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.

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

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

+ fotos / videos

https://panchito-kardashian.tar.mx/media/2017/09/webhooks-rocketchat.png

Almacenado en Software, Bots, RocketChat

por Jorge Martínez Mauricio :)

blog / fotos / archivo

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

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado jueves 8 de julio de 2021, 11:19

cuentame