O Slack é uma ferramenta conveniente e popular que você pode aprimorar com seus próprios comandos, personalizados para sua organização.

O Slack é uma ferramenta que permite que as equipes se comuniquem e colaborem. Uma de suas principais características é o uso de comandos de barra. Esses comandos acionam ações ou integrações específicas dentro da plataforma.

Embora o Slack forneça vários comandos de barra integrados, você pode criar comandos personalizados usando a API do Slack. Você pode configurar o comando personalizado para executar uma determinada tarefa quando um usuário o acionar.

Por que criar um comando de barra personalizado no Slack?

Os comandos de barra integrados do Slack podem não atender às necessidades específicas de sua equipe ou organização. Ao criar comandos de barra personalizados, você pode criar uma experiência mais personalizada para sua equipe. Isso, por sua vez, aumenta o engajamento da equipe.

Configurando um aplicativo Slack

Para prosseguir, você deve estar confortável com o

uso básico do Slack. Faça login na sua conta do Slack no navegador e crie um novo espaço de trabalho. Você usará este espaço de trabalho para testar seus aplicativos antes de usá-los no espaço de trabalho de sua equipe.

Abra outra guia e navegue até o Site da API Slack.

Clique no Criar um aplicativo botão. Na próxima página que aparecer, escolha a opção de criar um aplicativo Do princípio.

Nomeie o aplicativo e selecione o espaço de trabalho no qual o aplicativo irá operar.

Clique no Criar aplicativo botão. Isso o redirecionará para uma página que contém as informações básicas sobre seu aplicativo.

Na seção de recursos, navegue até o OAuth e permissões recurso e, em seguida, role para baixo até Escopos de token de bot. Adicionar um bate-papo: escreva escopo para seu aplicativo. Esse escopo permitirá que seu aplicativo envie mensagens para o espaço de trabalho.

Role até o Tokens OAuth para seu espaço de trabalho seção e clique no botão Instalar no espaço de trabalho botão.

Na próxima página que aparecer, clique no botão Permitir botão. Isso instalará o aplicativo em seu espaço de trabalho.

Criando um comando de barra personalizado usando a API do Slack

Depois de configurar o aplicativo Slack, você precisa criar um comando personalizado para a tarefa que deseja realizar. Por exemplo, um comando de barra que retorna uma piada para o usuário. Navegue até o Comandos de barra recurso. Clique no Criar Novo Comando botão.

Preencha o Comando, Solicitar URL, e Pequena descrição do comando que você deseja criar. A URL de solicitação é o endpoint para o qual o Slack envia uma solicitação POST quando um usuário aciona o comando. Use um URL de host local como espaço reservado; você mudará este URL mais tarde.

Clique em Salvar. Quando você salva, o Slack adiciona automaticamente um escopo de comandos para seu aplicativo. Esse escopo permite que seu aplicativo adicione atalhos e comandos de barra que as pessoas em seu espaço de trabalho podem usar. Alterar os escopos exigirá que você reinstale o aplicativo. Clique no reinstale seu aplicativo botão.

Na página que aparece a seguir, clique em permitir a reinstalação do aplicativo em seu espaço de trabalho.

Configurando o comportamento do comando Slash

Inicie qualquer IDE Python. Crie um novo ambiente virtual. Crie um novo arquivo Python e um novo arquivo .env. No terminal, execute o seguinte comando para instalar as bibliotecas necessárias.

pip install python-dotenv solicita Flask slack-bolt

O python-dotenv A biblioteca permitirá que você carregue as variáveis ​​de ambiente no arquivo .env. O solicitações de A biblioteca permite que você faça solicitações HTTP e Frasco lida com solicitações HTTP recebidas e retorna respostas. parafuso frouxo lida com as solicitações recebidas do Slack.

Abra o arquivo .env e crie duas variáveis ​​de ambiente. Nomeie-os BOT_TOKEN e SIGNING_SECRET respectivamente. Navegue até o site da API do Slack. Sob o seu aplicativo Informação básica copie o segredo de assinatura e use-o para inicializar a variável BOT_TOKEN. Navegue até o recurso OAuth e permissões e copie o token OAuth do usuário do bot. Use-o para inicializar a variável SIGNING_SECRET.

O token do bot é um identificador exclusivo que autentica seu aplicativo com a API do Slack ao fazer chamadas de API. O segredo de assinatura verifica se as solicitações recebidas para seu aplicativo vêm do Slack.

O código-fonte completo está disponível em um Repositório GitHub.

Importe as bibliotecas e módulos necessários.

importar os
de pathlib importar Caminho
de dotenv importar load_dotenv
importar solicitações de
de frasco importar Frasco, solicitação, jsonify
de slack_bolt importar Aplicativo
de slack_bolt.adapter.flask importar SlackRequestHandler

Crie uma nova instância de um aplicativo Flask.

app = Frasco (__name__)

Carregue as variáveis ​​de ambiente do arquivo .env usando o load_dotenv() função.

env_path = Caminho('.') / '.env'
load_dotenv (dotenv_path=env_path)

Crie uma nova instância de um aplicativo Slack usando o Aplicativo classe da biblioteca slack_bolt.

slack_app = Aplicativo(
token=os.environ['BOT_TOKEN'],
signature_secret=os.environ['ASSINAR_SECRETO']
)

Crie uma função de manipulador de rota que lide com as solicitações recebidas para o /slack/command ponto final. Quando o terminal recebe um PUBLICAR pedido, ele analisa os dados do corpo do pedido. Em seguida, ele verifica se o comando é /joke. Em caso afirmativo, ele chama o get_joke() e retorna uma resposta JSON ao Slack com o resultado do comando.

@app.route("/slack/command", métodos=["POST"])
defcomando():
# Analisa os dados do corpo da solicitação
dados = pedido.formulário

# Chame a função apropriada com base no comando de barra
se dados["comando"] == "/piada":
mensagem = get_joke()
outro:
mensagem = f"Comando inválido: {dados['comando']}"

# Retornar a resposta ao Slack
retornar jsonify({"texto": mensagem})

Crie uma função que envie uma solicitação GET para o icanhazdadpiada API para recuperar uma piada aleatória no formato JSON. Em seguida, ele retorna a piada como uma string.

defget_joke():
URL = " https://icanhazdadjoke.com/"
cabeçalhos = {"Aceitar": "aplicativo/json"}
resposta = request.get (url, headers=headers, timeout=5)
piada = resposta.json()["piada"]
retornar piada

Crie uma nova instância de um SlackRequestHandler objeto que tratará das solicitações recebidas do Slack.

manipulador = SlackRequestHandler (slack_app)

Verifique se o script está sendo executado diretamente e, se estiver, inicie o aplicativo Flask na porta 5000.

se __nome__ == "__principal__":
# Inicie o aplicativo Flask na porta 5000
app.run (porta=5000, depurar=Verdadeiro)

Execute o programa para iniciar o servidor em execução no localhost.

Para que o programa se comunique com o Slack, você precisa de uma URL que ele possa acessar pela internet. Baixe e execute ngrok. O O software ngrok permite que você crie um URL público seguro que encapsula o tráfego para um servidor da Web em execução no seu computador.

Execute o seguinte comando para obter o URL público:

ngrok http 5000

A imagem abaixo mostra a URL pública no ngrok, destacada em branco.

Copie o URL e navegue até o site da API do Slack. Clique no Comandos de barra recurso. Edite o comando /joke e substitua o espaço reservado da URL de solicitação por sua URL pública. Adicione /slack/events no final da URL para apontar para o endpoint.

Vá para o seu espaço de trabalho, digite e envie o comando /joke. Você deve ver uma piada em resposta:

Familiarize-se com outros recursos do Slack

O Slack tem muitos recursos a oferecer além dos comandos Slash. Familiarizar-se com esses recursos permitirá que você entenda como eles funcionam.

Você pode procurar maneiras de personalizá-los de acordo com os requisitos do seu espaço de trabalho. Isso aumentará a produtividade da sua equipe.