Slack es una herramienta cada vez más popular para empresas y equipos que necesitan comunicarse al instante. Si bien en algunos casos puede considerarse una interrupción diaria, también tiene un gran potencial de automatización, ya que ofrece docenas de integraciones para mantener todo en un solo lugar y poco a poco está reemplazando a los correos electrónicos.

Hay muchas formas de integrar tus sistemas con Slack; la plataforma incluso proporciona un bot de marca que le permite enviar recordatorios o mensajes en su espacio de trabajo digital. Y para obtener aún más mejoras de colaboración, pruebe estas opciones de almacenamiento en la nube.

ganchos web, que permiten publicar mensajes de otras aplicaciones en Slack, pero son una forma de comunicación unidireccional,aplicaciones, para integraciones avanzadas (con otras aplicaciones),usuarios de robots, Más sobre ellos en breve.

instalación npm

Dale un nombre de usuario a tu bot e invítalo a tu canal (Crédito de la imagen: Diseñador web)

SLACK_TOKEN=xoxb- SLACK_CHANNEL=

//index.js const bot = require('./bin/lib/bot').init ('WDMBot'); //bot.js const botParams = { icon_emoji: ':robot_face:', as_user: false }; dejar bot; function initBot(botName) { bot = new slackbot({ token: proceso.env.SLACK_TOKEN, nombre: botName }); }

Ahora puedes hacer que tu bot envíe mensajes (Crédito de la imagen: Diseñador web)

function initBot(botName) { bot = /* ver arriba */ sendMessage('¡Estoy aquí!'); } // Ahora ejecuta 'npm start'

const botParams = { icon_url: 'https://pbs.twimg.com/profile_images/976112552081010688/ WLlQvj8D_400x400.jpg', as_user: false };

Configure su bot para escuchar mensajes (Crédito de la imagen: Diseñador web)

function initBot(botName) { bot = /* ver arriba */ bot.on('message', data => { console.log(data); }); }

bot.on('mensaje', datos => { if(data.type === 'mensaje') { if(data.text.toLowerCase() === '¿dónde estás?') { sendMessage('I' ¡estoy aquí!'); } } });

bot.on('mensaje', datos => { if(data.type === 'mensaje' && datos. subtipo!== 'bot_message') { if(data.text.toLowerCase(). incluye('hola' )) { sendMessage('¡Hola, soy un robot!');

bot.on('mensaje', datos => { if(data.type === 'mensaje' && datos. subtipo!== 'bot_message') { if(data.text.toLowerCase(). incluye('hola' )) { sendMessage('Hola <@${data.user} > ¡Soy un robot!');

Si está buscando aprender las últimas habilidades creativas y prácticas para llevar el trabajo, la carrera o la agencia de su cliente al siguiente nivel, únase a nosotros en Generate CSS, nuestra conferencia centrada en CSS para diseñadores y desarrolladores web. Saber más aquí. Utilice el código de oferta especial DISEÑADOR WEB2 ¡Para un 10% de descuento en entradas! (Crédito de la imagen: Getty/Futuro)

dejar cambiarRespuesta = false; función updateMessage(messageParams) { bot.updateMessage(messageParams.channel, messageParams.ts, messageParams.text, botParams); }

Actualiza los mensajes que envía el bot. (Crédito de la imagen: Diseñador web)

if(data.type === 'message' && data.subtype!== 'bot_message' && data.text) { if(data.text.includes('update')) { sendMessage('Actualizaré en 5 segundos'); cambiarRespuesta = verdadero; } } if(data.type === 'mensaje' && data.subtype === 'bot_message' && changeReply) { changeReply = false; setTimeout(() => { updateMessage({ canal: data.channel, ts: data.ts, texto: 'He actualizado'}); }, 5000); }

Los mensajes efímeros solo los ve un usuario y se pueden eliminar (Crédito de la imagen: Diseñador web)

if(data.text.toLowerCase().includes(' hr ')) { ephemeralMessage({ canal: data.channel, usuario: data.user, text: 'Si necesita comunicarse con RR.HH., su correo electrónico es hr@mycompany. es' }); } // La función que estamos llamando function ephemeralMessage(messageParams) { bot.postEphemeral(messageParams.channel, messageParams.user, messageParams.text, botParams); }

función asíncrona getUserName(userID) { return await bot.getUsers() .then(data => { let member = data.members.find (user => { return user.id === userID; }); return member.name ; }) .catch(err => console.log(err)); }

//En el evento del mensaje if(data.text.toLowerCase().includes('bot')) { sendDM({ usuario: data.user, text: '¿Cómo puedo ayudar?' }); } // La función que llamamos función asíncrona sendDM(messageParams) { let user = await getUserName (messageParams.user); return bot.postMessageToUser(usuario, mensaje Params.text, botParams, (err, datos) => { console.log(err) }); }

//en initBot() cargador = new slackUpload(process.env. SLACK_TOKEN); //en el evento del mensaje if(data.text.includes('image')) { if(!data.upload) { /*En este caso, no hay ningún subtipo de mensaje, por lo que verificamos que no esté activado por un mensaje anterior subir mensaje*/ let image = data.text.split(' ')[1]; sendImage('Esta es la imagen que querías', imagen); } }

Utilice el cargador y el sistema de archivos para cargar imágenes. (Crédito de la imagen: Diseñador web)

función sendImage(mensaje, imagen) { uploader.uploadFile({ file: fs.createReadStream(path.join (__dirname, '../../assets/${image}')), mimetype: 'image/*', tipo de archivo: '*', título: imagen, comentario inicial: mensaje, canales: canal }, (err, datos) =>…