Ir para o conteúdo

Slack

Integre seu código com Slack para enviar mensagens, arquivos e muito mais.

Instalação

pip install botcity-slack-plugin

Configurando o token da API

Para usar este plugin, você precisa de um token da API Slack.

Siga as instruções aqui para aprender a obter um token da API.

Importando o plugin

Depois de instalar este pacote, a próxima etapa é importar o pacote para o seu código e começar a usar as funções.

from botcity.plugins.slack import BotSlackPlugin

Enviando uma mensagem simples

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

mensagem_de_resposta = cliente.send_simple_message(text="A simple message")

Aqui está a saída esperada:

Envie uma mensagem mais elaborada

Você pode compor e enviar mensagens complexas com a classe Message.

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

mensagem = Message(
    text="A more elaborate message",
    title="title test",
    color=Color.RED
    )

# Sets author
mensagem.author = Author(author_name="Author test",
                        author_icon="https://placeimg.com/16/16/people",
                        author_link="http://flickr.com/bobby/")
# Sets thumb_url
mensagem.thumb_url = "http://placekitten.com/g/200/200"

# Sets Footer
mensagem.footer = Footer(footer="Footer test",
                        footer_icon="https://platform.slack-edge.com/img/default_application_icon.png")
# Sets fields
mensagem.fields = [Field(title="Field test", value="values test", short=False),
                Field(title="Field test 2", value="values test 2", short=True),
                Field(title="Field test 3", value="values test 3", short=True)]

#Send message
mensagem_de_resposta = cliente.send_message(message=mensagem)

Aqui está a saída esperada:

Atualizando uma mensagem

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

messagem = cliente.send_simple_message(text="A simples message")

cliente.update_message(message=messagem, text="Edit a simple message")

Aqui está a saída esperada:

Recuperando mensagens

New in version 0.1.1

Você pode recuperar mensagens com base no registro de data e hora de qualquer mensagem obtida por meio da resposta da mensagem. E também é possível responder às mensagens. Veja os exemplos.

Respondendo uma mensagem

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

mensagem_de_resposta = cliente.send_simple_message(text="This is a test to reply the message in the thread")
resposta = cliente.reply(response=cliente.get_replies(mensagem_de_resposta),
                             msg="This is a reply to message")

Aqui está a saída esperada: reply-to-message

Aguardando novas mensagens

Usando o método wait for reply, é possível esperar que uma mensagem seja recebida. Este método continua procurando respostas até encontrá-las, dentro de um limite de tempo determinado através do parâmetro timeout.

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

# Enviar mensagem
mensagem_de_resposta = client.send_simple_message(text="This is a test to retrieving messages in the thread")

# Esperando que alguém responda à mensagem enviada anteriormente (neste caso, ela foi respondida no Slack "Test Retrieving Mensagens")
resposta = cliente.wait_for_reply(response=mensagem_de_resposta)

print(resposta)

Aqui está a saída esperada:

# Print reply
['Test Retrieving messages']

Obter respostas e obter respostas de texto

Nada impede de obter as respostas separadamente também. Se você tiver a resposta de uma ou mais mensagens.

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

mensagens = cliente.get_replies(mensagem_de_resposta)

mensagem_texto = cliente.get_text_replies(mensagens)

!!!observação Lembrando que mensagem_de_resposta pode ser obtido pelo método send_ message e send_simple_message, que retorna mensagem_de_resposta.

Carregando um arquivo

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

cliente.upload_file(file="SEU-CAMINHO-DO-ARQUIVO", text_for_file="Text accompanying the file", title_for_file="the title of file")

Aqui está a saída esperada:

Excluindo uma mensagem

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

#response_message = client.send_message(message=Message(....))
mensagem_de_resposta = cliente.send_simple_message(text="text to delete")

cliente.delete_message(message=mensagem_de_resposta)

Excluindo um arquivo

from botcity.plugins.slack import BotSlackPlugin

cliente = BotSlackPlugin(slack_token='<SEU_TOKEN>', channel='<CANAL_PARA_INTERACAO>')

carrega_arquivo_resposta = cliente.load_file(file="your-path-file", text_for_file="text for precedes file", title_for_file="the title of file")

cliente.delete_file(file=carrega_arquivo_resposta)