Crie este slack bot e dê ao seu canal uma vibração mais amigável.
Receber novos usuários em seu canal faz com que eles se sintam em casa, mas acompanhar cada usuário que entra pode ser uma tarefa cansativa. É aí que entra um bot de boas-vindas do Slack. O bot envia uma mensagem personalizada de boas-vindas a cada novo usuário do canal. Está sempre online, portanto, não haverá mensagens de boas-vindas atrasadas.
Você aprenderá como configurar as credenciais do seu bot, ouvir eventos no Slack e enviar mensagens de volta aos usuários.
Criando um bot do Slack e obtendo seu token de API
Criar uma conta Slack ou faça login no seu existente. Em seguida, crie um novo espaço de trabalho do Slack para testar seu bot antes de instalá-lo em seu espaço de trabalho ativo.
Faça login em seu novo espaço de trabalho. O Slack cria automaticamente um canal aleatório e geral para você.
Observe a seção Aplicativo na parte inferior esquerda do espaço de trabalho. É aqui que nosso bot aparecerá quando você o criar. Navegue até o Site da API Slack.
Clique em Criar um aplicativo. Criar o aplicativo Do princípio na janela que aparece.
Nomeie seu aplicativo e selecione o espaço de trabalho no qual deseja desenvolvê-lo.
Em seguida, clique no Criar aplicativo botão. Ao clicar, você será redirecionado para uma página que contém as informações básicas do seu aplicativo. Anote o segredo de assinatura nas credenciais do aplicativo. Seu bot usará o segredo de assinatura para verificar se um evento veio do Slack e não foi adulterado durante a transmissão.
Acesse o recurso OAuth e permissões.
Em OAuth & Permissions, navegue até Bot Token Scopes. É aqui que você adicionará as permissões do que seu bot pode fazer em seu espaço de trabalho. Adicione o usuários: ler escopo. Esse escopo permitirá que seu bot visualize as pessoas em seu espaço de trabalho. Além disso, adicione o bate-papo: escreva escopo que permitirá que seu bot envie mensagens para o espaço de trabalho.
Navegue de volta para as informações básicas do seu bot e clique em Instalar no espaço de trabalho.
Clique em permitir na próxima página que aparece. Agora você concluiu a instalação do bot em seu espaço de trabalho. Navegue até o recurso OAuth e permissões. Anote o token OAuth do usuário do bot que o Slack gera após a instalação. O bot ficará visível na seção de aplicativos do seu espaço de trabalho.
Agora que você instalou o bot em seu espaço de trabalho, pode escrever o código para controlá-lo.
Preparando seu ambiente
Você precisa estar familiarizado com o noções básicas de Python para seguir estes exemplos de código.
Crie um novo ambiente virtual e um .env arquivo. Você usará o arquivo .env para armazenar seu token e segredo de assinatura, que você precisa manter em sigilo. Você não deve carregar o arquivo .env em nenhuma plataforma pública.
Execute o seguinte comando em um terminal para instalar as bibliotecas necessárias:
pip instalar slack-sdk pathlib dotenv flask slackeventsapi
A biblioteca slack-sdk fornece ferramentas para criar aplicativos e integrações do Slack, incluindo métodos de API, clientes de API da Web e OAuth. pathlib e dotenv irão ajudá-lo a carregar as variáveis de ambiente. flask ajudará você a lidar com as solicitações e respostas HTTP. O slackeventsapi fornecerá a você um ouvinte de eventos que recebe e manipula eventos do Slack.
O código-fonte completo está disponível em um Repositório GitHub.
Importando as bibliotecas necessárias
Crie um novo arquivo Python e comece importando as bibliotecas instaladas anteriormente para poder usar a funcionalidade delas em seu código.
importar slack_sdk como folga
importar os
de pathlib importar Caminho
de dotenv importar load_dotenv
de frasco importar Frasco
de slakeventsapi importar SlackEventAdapter
Módulo os do Python vem com o idioma, então você não precisa instalá-lo. SlackEventAdapter é uma classe do módulo slackeventsapi que manipula eventos da API do Slack.
Configurando o bot do Slack
Crie duas variáveis no arquivo .env. Nomeie um SLACK_BOT_TOKEN e atribua a ele o token OAuth do usuário do bot. Nomeie o outro SLACK_SIGNING_SECRET e atribua a ele o segredo de assinatura. Volte para o arquivo Python e crie um objeto Flask. Em seguida, carregue as variáveis de ambiente do arquivo .env usando a função load_dotenv do módulo dotenv.
app = Frasco (__name__)
env_path = Caminho('.') / '.env'
load_dotenv (dotenv_path=env_path)
Crie uma instância slack_event_adapter. Ele manipulará eventos da API Slack, usando a variável de ambiente SLACK_SIGNING_SECRET para autenticar solicitações.
slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/eventos', aplicativo)
/slack/events é o endpoint que a API do Slack usará para enviar eventos.
Crie uma instância WebClient que enviará mensagens para a API do Slack. Faça uma chamada de API para recuperar o ID do bot.
cliente = folga. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = cliente.api_call("auth.test")['ID do usuário']
Configure a mensagem que você enviará aos novos usuários que entrarem em um canal. Inicialize um conjunto vazio que acompanhará os usuários bem-vindos.
GREETING_MESSAGE = "Olá {user_name}, bem-vindo ao {channel_name}" \
"canal! Estamos empolgados em ter você aqui."
welcome_users = set()
Você pode personalizar a saudação ao seu gosto.
Criando uma função para lidar com o evento “Member Joined Channel”
Configure um ouvinte de evento. Ele ouvirá o evento member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Defina uma função que você chamará quando um usuário ingressar em um canal. Use a função para extrair o ID do usuário e o ID do canal dos dados do evento. Verifique se o usuário é novo no canal. Caso contrário, obtenha as informações do usuário e do canal usando a classe WebClient. Crie uma mensagem de saudação personalizada. Envie a saudação ao canal
defhandle_member_joined_channel(event_data):
user_id = event_data['evento']['do utilizador']
channel_id = event_data['evento']['canal']# Só envie uma mensagem de boas-vindas se o usuário for novo
se ID do usuário nãoem welcome_users:
welcome_users.add (user_id)user_info = client.users_info (user=user_id)
user_name = user_info['do utilizador']['nome']channel_info = client.conversations_info (channel=channel_id)
canal_nome = canal_info['canal']['nome']saudação = GREETING_MESSAGE.format (user_name=user_name,
canal_nome=canal_nome)
client.chat_postMessage (canal=channel_id, texto=saudação)
O event_data contém todas as informações sobre o evento no qual um usuário ingressou em um canal.
Inicie o aplicativo Flask e execute o script. Se for executado como o programa principal (não importado como um módulo), execute no modo de depuração e escute na porta 5000.
se __nome__ == "__principal__":
app.run (depurar=Verdadeiro, porta=5000)
O modo de depuração recarrega automaticamente o aplicativo quando você faz alterações no código. Não use o modo de depuração em um ambiente de produção, pois pode expor informações confidenciais e tornar seu aplicativo vulnerável a ataques. Execute seu aplicativo. Ele será executado como um servidor local na porta 5000.
Conectando a lógica com seu bot
Tendo criado a lógica, agora você precisa se conectar ao bot em seu espaço de trabalho. Isso permitirá que ele use essa lógica para executar operações em seu espaço de trabalho. Comece baixando e executando Ngrok. O Ngrok ajudará você a expor seu servidor da Web local à Internet.
Depois de executá-lo, use o seguinte comando para mapear o endereço do seu servidor local para o do Ngrok.
ngrok http 500
Copie o endereço Ngrok que mapeia para seu host local.
Navegue até o site da API do Slack. Debaixo de Assinaturas de eventos recurso, habilitar eventos. Sob Solicitar URL digite o endereço Ngrok seguido por /slack/events. Isso apontará para o seu endpoint.
Em seguida, inscreva-se no evento member_joined_channel. Isso notificará seu bot sempre que um usuário ingressar em um canal. Clique em Salvar alterações. O Slack adicionará automaticamente os escopos necessários para se inscrever neste evento. Toda vez que você alterar um escopo, terá que reinstalar seu aplicativo no espaço de trabalho.
Clique em reinstalar seu aplicativo.
Testando seu bot
Vá para o seu espaço de trabalho. Vá para o canal que você deseja usar o bot. Envie uma mensagem direta para o bot. Por exemplo @Welcoming Bot. Uma solicitação para adicionar o bot ao canal será exibida. Clique em adicionar.
Agora, toda vez que um novo usuário entrar no canal, o bot enviará uma mensagem de boas-vindas.
A imagem acima mostra o bot dando as boas-vindas a um novo usuário no canal.
Aproveitando ao máximo seu espaço de trabalho Slack
Os bots Slack não são a única maneira de estender a funcionalidade da plataforma de mensagens Slack. O outro método é integrar ferramentas de terceiros ao Slack. Eles fornecem funcionalidade adicional dentro da plataforma.
Familiarize-se com essas integrações, pois elas aumentarão sua produtividade no Slack.