Crie um bot de folga personalizado

Sep 11, 2025
Como
Create a custom Slack bot
(Crédito da imagem: Web Designer)

A folga é uma ferramenta cada vez mais popular para empresas e equipes que precisam se comunicar instantaneamente. Embora possa - em alguns casos - seja considerado uma interrupção diária, também tem um grande potencial de automação, oferecendo dezenas de integrações para manter tudo em um só lugar, e está lentamente substituindo e-mails.

Há muitas maneiras de integrar seus sistemas com folga; A plataforma ainda fornece um bot de marca que permite entregar lembretes ou mensagens em seu espaço de trabalho digital. E para melhorias ainda mais colaboração, experimente estes armazenamento na núvem opções.

  • 18 das melhores ferramentas de colaboração para designers

Slack oferece várias entidades que poderiam ser consideradas 'bots':

  • webhooks, que permitem postar mensagens de outros aplicativos em folga, mas são uma forma de comunicação unidirecional,
  • aplicativos, Para adiantamentos integrações (com outros aplicativos),
  • usuários bot, mais sobre eles em breve.

Neste tutorial, estaremos parecendo particularmente em 'Bot Users', como programá-los (confira nosso guia para o Melhores editores de código para facilitar sua vida) e fazê-los se adequarem às suas necessidades. Isso pressupõe que você tenha acesso a um espaço de folga onde você pode adicionar integrações de aplicativos. Se você ainda não estiver parte de um, eles são livres para criar.

No que se segue, construímos um aplicativo Nodejs para postar e responder a mensagens específicas em um canal folgado. Usamos o módulo "Slackbots", que é um invólucro para a API de mensagens em tempo real de folga.

Também interessado em fazer um site? Escolha um brilhante. Construtor de sites e top hospedagem na web. serviço para ir com isso.

01. Configuração de código

Este tutorial pressupõe que você tenha um nó instalado. Se não, faça agora. Então Baixe os ativos você precisará. Nós fornecemos um ponto de partida e estrutura para o tutorial.

Ao longo, fazemos uso de módulos, como 'Slackbots' e 'Nó-Slack-Upload'. Eles podem ser obtidos executando o comando de instalação.

npm install

02. Configuração de folga

Create a custom Slack bot: Slack setup

Dê ao seu nome de usuário e convidá-lo ao seu canal (Crédito da imagem: Web Designer)

Estamos usando a integração "Bot User" para folga. Para fazer isso, precisamos obter um token indo para 'https: // & lt; youslackworkspace & gt; .slack.com / apps / a0f7ys25r-bots' e clique em "Adicionar configuração".

Escolha um nome de usuário para o seu bot (podemos substituir isso programaticamente em um estágio posterior) e confirmar.

Convide o bot para o canal desejado.

Ao criar um usuário de bot, você receberá um token no seguinte formato:

xoxb-000000-000000-x0x0xxxxx0xxx0x

Copie o token para o próximo passo.

03. Variáveis ​​de ambiente

Fazemos uso de variáveis ​​de ambiente (um arquivo '.env') para evitar codificação dura e revelar tokens e chaves secretas, como o token folgado que geramos, e o nome do canal em seu espaço de trabalho de folga privada.

Vá em frente e preencha o arquivo '.env' com o seu token e o nome do canal ao qual você convidou o usuário do bot.

 Slack_token = Xoxb- & lt; youtoken & gt;
Slack_channel = & lt; nome de canal & gt; 

04. Parâmetros de bot

Este próximo passo nos leva a 2 arquivos: 'index.js', que teremos uma breve olhada, e 'bin / lib / bot.js', onde a maior parte do nosso desenvolvimento acontece. No arquivo de índice, instanciamos nosso bot dando um nome, que é 'wdmbot'.

Em 'bot.js' controlamos os parâmetros de cada instância com nome, token, etc.

 // index.js
const bot = requer ('./ bin / lib / bot'). init
('Wdmbot');

//bot.js.
Const botparams = {
icon_emoji: ': robot_face:',
AS_USER: FALSE.
};
deixe bot;
função initbot (botname) {
bot = novo slackbot ({
Token: process.env.slack_token,
Nome: Botname.
});
} 

05. Postar para canal

Create a custom Slack bot: Post to channel

Agora você pode obter seu bot para enviar mensagens (Crédito da imagem: Web Designer)

Dê uma olhada na função 'Sendmessage'. Nós usamos o método 'postto'. Isso irá lidar com a postagem em qualquer tipo de canal, público ou privado. Se você quiser apenas postar em canais privados, poderá usar 'pós-argamassa' em vez (ou 'postTochannel' para um público). Para enviar nossa primeira mensagem, podemos adicionar código em 'initbot'.

 Função Initbot (Botname) {
bot = / * veja acima * /
Sendmessage ('Estou aqui!');
}
// Agora executado 'NPM Start' 

06. BotParams personalizados

Você deveria ter notado uma mensagem do WDMBOT aparecer no seu canal. Vale a pena notar que em "botparams", 'as_user' é definido como falso, o que nos permite substituir o nome e a imagem. Se definido como TRUE, ele usará o nome e a imagem que você definirá ao obter o token.

Você pode mudar o bot de emoji para uma imagem como assim:

 Const botparams = {
icon_url: 'https://pbs.twimg.com/
Perfil_images / 976112552081010688 /
Wllqvj8d_400x400.jpg ',
AS_USER: FALSE.
}; 

07. Eventos de canal

Create a custom Slack bot: Channel events

Defina seu bot para ouvir mensagens (Crédito da imagem: Web Designer)

A postagem de mensagens é útil, mas para tornar o bot mais interativo, precisamos ser capazes de identificar posts de outros usuários no canal. Vamos ouvir o evento da mensagem e, em seguida, ver o que acontece quando digitamos para o canal. Devemos ver diferentes tipos de mensagens sendo registrados, como 'user_typing' ou 'mensagem'.

 Função Initbot (Botname) {
bot = / * veja acima * /
bot.on ('mensagem', dados = & gt; {
console.log (dados);
});
} 

08. Responda a mensagens recebidas

Em seguida, queremos responder a mensagens recebidas do tipo 'mensagem', e talvez para uma frase ou palavra-chave específica, para evitar responder a absolutamente tudo. Certificamos de comparar seqüências minúsculas se quisermos combinar uma frase exata. Nós também poderíamos ver se uma mensagem 'inclui ()' uma palavra específica.

 bot.on ('mensagem', dados = & gt; {
if (data.type === 'mensagem') {
if (data.text.tolowercase () === 'onde
você está?') {
Sendmessage ('Estou aqui!');
}
}
}); 

09. Restringir aos usuários "humanos"

As mensagens enviadas por usuários bot têm várias propriedades, como um subtipo de 'bot_message' e um bot_id. Você pode querer restringir a resposta a apenas mensagens postadas em humanos para evitar loops infinitos de bots respondendo a si mesmos ou se a sua resposta incluir uma das palavras-chave que você está ouvindo.

 bot.on ('mensagem', dados = & gt; {
if (data.type === 'mensagem' & amp; e amp; dados.
subtipo! == 'bot_message') {
if (data.text.tolowercase ().
inclui ('olá')) {
Sendmessage ('Olá, eu sou um bot!');
}
}
}); 

10. Resposta personalizada

Para dar uma resposta mais personalizada, você pode aproveitar o ID do usuário da mensagem que você está respondendo. A folga converterá automaticamente um ID para o nome de usuário quando incluído nas tags '& lt; @ & gt;'. Identificar quem você está respondendo pode ser útil, especialmente se os membros de vários canais estiverem interagindo com seu bot simultaneamente.

 bot.on ('mensagem', dados = & gt; {
if (data.type === 'mensagem' & amp; e amp; dados.
subtipo! == 'bot_message') {
if (data.text.tolowercase ().
inclui ('olá')) {
Sendmessage ('Hello & Lt; @ $ {data.user}
& gt; Eu sou um robô!');
}
}
}); 

generate CSS

Se você está procurando aprender as últimas habilidades criativas e práticas para levar seu trabalho de cliente, carreira ou agência para o próximo nível, junte-se a nós em Gerar CSS - nossa conferência focada em CSS para web designers e desenvolvedores. Descubra mais aqui . Use o código de oferta especial WebDesigner2. Para um desconto de 10% em bilhetes! (Crédito da imagem: Getty / Future)

11. Atualizar respostas

Os bots também podem editar suas respostas. Apenas o seu próprio, no entanto. Então, se você estivesse esperando por um bot digitalizador que corrija suas mensagens automaticamente quando ele passa um erro, isso não é possível com a configuração atual.

Para atualizar a mensagem, definimos uma nova função e uma booleana global que usaremos em nossa demonstração.

 Deixe changereply = falso;
Atualização da função (MessageParams) {
bot.updatemessage (MessageParams.channel,
MessageParams.TS, MessageParams.Text,
botparams);
} 

12. Altere a mensagem

Create a custom Slack bot: Changing the message

Atualize as mensagens que o bot envia (Crédito da imagem: Web Designer)

Vamos tentar atualizar o texto que o bot nos envia. Nesse caso, em um evento de mensagem, precisamos responder a uma mensagem de bot de entrada, portanto, iremos corresponder a essa condição para a atualização, e também usaremos o registro de data e hora da mensagem original a ser atualizada. Isso é tão folgado pode identificar qual mensagem para atualizar, caso os outros sejam postados no meio.

 se (data.type === 'mensagem' & amp; e amp; data.subtype! ==
'bot_message' & amp; & amp; data.text) {
if (data.text.inclui ('atualizar')) {
Sendmessage ('Vou atualizar em 5
segundos ');
changereply = true;
}
}
if (data.type === 'mensagem' & amp; e amp; data.subtype ===
'bot_message' & amp; & amp; challereply) {
changereply = false;
settimeout (() = & gt; {
UpdateMessage ({Channel: Data.Cannel,
TS: Data.TS, texto: 'Eu atualizei'});
}, 5000);
} 

13. Mensagens efêmeras

Create a custom Slack bot: Ephemeral messages

As mensagens efêmeras são vistas apenas por um usuário e podem ser excluídas (Crédito da imagem: Web Designer)

As mensagens efêmeras são, como o nome pode sugerir, temporário. Eles também são visíveis apenas para um usuário e podem ser excluídos por eles. Esses tipos de mensagens podem ser úteis como uma dica ou lembrete que não precisa ficar permanentemente.

 se (Data.Text.tolowercase (). Inclui ('HR')) {
efemeralmessage ({
Canal: Data.Cannel,
Usuário: Data.User,
Texto: 'Se você precisar contatar HR,
seu email é [email protected]
});
}

// a função que estamos chamando
função efemereralMessage (MessageParams) {
bot.postephemeral (MessageParams.Cannel,
MessageParams.User, MessageParams.Text,
botparams);
} 

14. Pesquisa do usuário.

Métodos diferentes levarão um parâmetro de usuário ligeiramente diferente (ID ou nome, que é diferente do display_name e do Real_Name). No entanto, apenas o ID do usuário está disponível nos eventos da mensagem. Podemos, portanto, implementar uma pesquisa de nome de usuário obtendo todos os usuários e correspondendo ao ID.

 ASYNC Função GetUseName (UserID) {
Devolver aguarda bot.getusers ()
.then (dados = & gt; {
Deixe o membro = data.members.find
(usuário = & gt; {
return user.id === userid;
});
Membro de retorno. Nome;
})
.catch (err = & gt; console.log (err));
} 

15. Envie mensagens diretas

Com a nova pesquisa do usuário, agora podemos enviar mensagens diretas para um usuário, quando as mensagens efêmeras simplesmente não serão. Observe que as mensagens diretas são consideradas um canal novo / diferente, com um ID diferente do canal original. Você também pode implementar uma pesquisa de canal da mesma maneira que o usuário que fizemos anteriormente.

 // no evento da mensagem
if (data.text.tolowercase (). Inclui ('bot')) {
senddm ({
Usuário: Data.User,
Texto: "Como posso ajudar?"
});
}
// a função que estamos chamando
Senddm da função assíncrance (MessageParams) {
deixe o usuário = aguardar getusername
(MessageParams.User);
Retornar Bot.PostMessageTayer (usuário, mensagem
Params.text, botparams, (err, dados) = & gt; {
console.log (err)
});
} 

16. Responda com uma imagem

Os usuários bot também têm permissões para fazer upload de arquivos e imagens para um canal. Essa funcionalidade não é coberta por "slackbots", portanto, temos que instanciar um novo uploader, como demonstrado abaixo. Também prepare uma pasta 'ativos' na sua raiz do projeto, com algumas imagens nele.

Vamos preparar uma chamada para 'Sendimage ()', definido no próximo passo.

 // em initbot ()
Uploader = novo Slackupload (Process.env.
Slack_token);

// no evento da mensagem
if (data.text.inclui ('Image')) {
if (! data.upload) {
/ * Neste caso, não há mensagem
subtipo,
Então, verificamos que não é acionado por um
Mensagem de upload anterior * /
deixe imagem = data.text.split ('') 
; sendimage ('esta é a imagem que você queria ', imagem); } }

17. A função de upload de arquivos

Create a custom Slack bot: The file upload function

Use o Uploader e o sistema de arquivos para fazer upload de imagens (Crédito da imagem: Web Designer)

Nós enviamos imagens usando o uploader e o módulo do sistema de arquivos (FS). Desde que a mensagem de um usuário esteja no formato "Image & Lt; Imagename.Extension & gt;", e tal arquivo existe na pasta 'Ativos', a imagem será lida e carregada. Se não, enviamos uma mensagem regular (poderia até ser um efêmero).

Função Sendimage (mensagem, imagem) {
uploader.Uploadfile ({
Arquivo: fs.creadstream (path.join
(__dirname, '../../assets/Boary}')),
Mimetype: 'Image / *',
tipo de arquivo: '*',
Título: Imagem,
Cumprimento: Mensagem,
Canais: Canal
}, (err, dados) = & gt; {
if (err) {
sendmessage (desculpe, não consigo encontrar
$ {image} ');
}
});
} 

18. Postar para vários canais

Você pode postar em vários canais com o mesmo usuário bot, desde que seja um membro de cada canal onde você está esperando uma resposta. Vamos criar uma função 'PostToall' e atualizar as variáveis ​​de ambiente para ter nomes de canal como valores separados por vírgulas.

 Const Channels = process.env.slack_channel.
dividir(',');
Const Channel = canais 
; Função Posttoall (mensagem) { canais.Forach (canal = & gt; { bot.postto (canal, mensagem, botparams); }); }

19. Canais divididos

Ocasionalmente, você pode querer usar canais para depurar ou responder a eventos de maneira diferente com o mesmo bot em diferentes canais. Cabe a você treinar sua convenção de nomenclatura de canal. Vamos assumir para o exemplo a seguir que Slack_channel = Tutorial WDM-Tutorial, depuração do WDM.

 Função Splitmessages (Mensagem, DebugMessage) {
canais.Forach (canal = & gt; {
Const Msg = Channel.Cludes ('debug')
debugmessage: mensagem;
bot.postto (canal, msg, botparams);
});
} 

20. Dicionário de respostas

Temos sido respostas de codificação dura diretamente na mensagem. Indo para a frente, para tornar as coisas mais gerenciáveis, você pode querer armazenar gatilhos e respostas, em um formato de banco de dados ou JSON, e alternar entre eles, dependendo das condições atendidas.

 // Item de resposta de exemplo
{
Entrada: 'HR',
InputMatch: 'Incluir',
Resposta: 'Se você precisar contatar RH,
seu email é [email protected] ',
Responsetipo: 'efêmero'
} 

21. Outros recursos.

Create a custom Slack bot: Further resources

Há muito mais informações de bot para ser encontrado em outro lugar (Crédito da imagem: Web Designer)

Existem algumas outras propriedades úteis disponíveis na API Slack. Espero que este tutorial tenha dado uma visão geral do que é possível para todas as suas necessidades de bot. Mais recursos podem ser encontrados lendo o Documentação 'Slackbots' ou o completo Documentação de API Slack. .

Este artigo foi originalmente publicado em questão 289 da revista Creative Web Design Web designer . Comprar edição 289 aqui ou Inscreva-se no web designer aqui .

Artigos relacionados:

  • Construir um chatbot Ai-Powered
  • A folga teve uma enorme atualização e você está indo para amar
  • Como projetar uma experiência de chatbot

Como - Artigos mais populares

Como desenhar um cavalo

Como Sep 11, 2025

Pagina 1 de 2: Como desenhar um cavalo: passo a passo Como desenhar um ca..


Comece com a Adobe Dimension CC

Como Sep 11, 2025

A dimensão da Adobe torna uma brisa para configurar cenas complexas (Crédito da imagem: Mike Griggs) A ..


Aprenda a modelar uma pessoa 3D em Zbrush e Maya

Como Sep 11, 2025

Pagina 1 de 2: Página 1 Página 1 Pági..


Construa aplicativos móveis de plataforma cruzada com flutter do Google

Como Sep 11, 2025

Houve inúmeras estruturas móveis de plataforma cruzada ao longo dos anos, com melhorias constantes na experiência e desempenho..


Faça efeitos de tipografia 3D interativos

Como Sep 11, 2025

A tipografia sempre desempenhou uma parte importante no arsenal de ferramentas de qualquer designer, como eles selecionam o tipo ..


Projetar um site responsivo com dimensionamento baseado em EM

Como Sep 11, 2025

Você provavelmente já ouviu falar que você deve usar unidades relativas para o tamanho da fonte. Esta é uma boa regra para design web acessível; Se o usuário alterar o tamanho de fonte ..


Pinte uma cena clássica do conto de fadas com procriate

Como Sep 11, 2025

O procriate rapidamente se tornou meu aplicativo de pintura digital. Graças à portabilidade do iPad Pro. , seu a..


Top Dicas para refinar suas técnicas de ilustração de mão-extraídas

Como Sep 11, 2025

Eu estive fazendo arte de lápis. Desde a minha infância, quando eu carregaria um lápis e papel comigo. Colorir ..


Categorias