sslack es una herramienta de línea de comandos (CLI) que permite interactuar de manera sencilla con la api de Slack enviando mensajes y archivos a canales y usuarios de tu workspace.
Enviamos un mensaje o archivo a un id de canal, pasándole directamente el token de autenticación:
sslack send --channel ABC123YZ --message "Hello, world!" --token XXXXXXXX
sslack send -c ABC123YZ --file /path/to/file --t XXXXXXXX
Puedes almacenar el token y los nombres de canales en un fichero local (HOME_DIR/.sslackConfig
) para no tener que especificarlos en cada comando:
sslack set-channel -c ABC123YZ -n test_channel
sslack set-token -t ABC123YZ
sslack send -n test_channel -m "Hello, world!"
Para crearte el ejecutable sslack
, necesitas tener Node.js y Bun instalados en tu máquina. Luego, puedes clonar este repositorio y ejecutar bun install
para instalar las dependencias.
git clone <url del repositorio>
cd sslack
bun install
Para crear un compilado de sslack, puedes ejecutar el script build definido en el archivo package.json:
bun run build
Esto te creara un ejecutable en el siguiente directorio: ./dist/sslack
Si tras exportar el ejecutable deseas instalarlo globalmente en tu sistema, puedes ejecutar el siguiente comando para copiar el fichero a la carpeta /usr/local/bin
:
sudo cp ./dist/sslack /usr/local/bin
Para poder usarlo en tu workspace de Slack, necesitas crear una app (de tipo Bot bastará) en dicho workspace y obtener un token de autenticación (OAuth). Ademas, deberás otorgarle los siguientes permisos a tu app:
- channels:join
- channels:write.invites
- chat:write
- files:write
- groups:write
- groups:write.invites
- im:write.invites
- mpim:write.invites
Siempre podrás limitar los permisos de tu app a los que realmente necesite.
Si deseas contribuir a sslack, puedes hacer un fork del repositorio, crear una nueva rama para tus cambios, y luego hacer un pull request. Asegúrate de que tus cambios pasen todos los tests antes de hacer el pull request.
sslack está licenciado bajo la licencia MIT, que puedes leer en el archivo LICENSE.md.