Saltar a contenido

Slack

Integra tu código con Slack para enviar mensajes, archivos y más.

Instalación

pip install botcity-slack-plugin

Configuración del Token de API

Para utilizar este complemento, necesitas un token de API de Slack.

Sigue las instrucciones aquí para aprender cómo obtener un token de API.

Importar el complemento

Después de instalar este paquete, el siguiente paso es importar el paquete en tu código y comenzar a utilizar las funciones.

from botcity.plugins.slack import BotSlackPlugin

Enviar un mensaje simple

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

response_message = client.send_simple_message(text="A simple message")

Aquí está la salida esperada:

Enviar un mensaje más elaborado

Puedes componer y enviar mensajes complejos con la clase Message.

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

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

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

# Sets Footer
message.footer = Footer(footer="Footer test",
                        footer_icon="https://platform.slack-edge.com/img/default_application_icon.png")
# Sets fields
message.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
response_message = client.send_message(message=message)

Aquí está la salida esperada:

Actualizar un mensaje

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

message_one = client.send_simple_message(text="A simples message")

client.update_message(message=message_one, text="Edit a simple message")

Aquí está la salida esperada:

Recuperar mensajes

Novedad en la versión 0.1.1

Puedes recuperar mensajes basados en la marca de tiempo de cualquier mensaje obtenido a través de la respuesta del mensaje. También es posible responder a mensajes. Mira los ejemplos.

Responder a un mensaje

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

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

Aquí está la salida esperada: reply-to-message

Esperar nuevos mensajes

Usando "wait for reply", es posible esperar a que se reciba un mensaje. Este método sigue buscando respuestas hasta que las encuentra, dentro de un límite de tiempo determinado a través del parámetro "timeout".

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

#Send message
response_message = client.send_simple_message(text="This is a test to retrieving messages in the thread")

# Waiting for someone to reply to the message sent earlier (In this case it was answered in the slack "Test Retrieving messages")
reply = client.wait_for_reply(response=response_message)

print(reply)

Aquí está la salida esperada:

# Imprimir respuesta
['Test Retrieving messages']

Obtener respuestas y obtener respuestas de texto

Nada impide obtener las respuestas por separado. Si tienes la respuesta de uno o más mensajes.

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

messages = client.get_replies(response_message)

message_text = client.get_text_replies(messages)

Note

Recuerda que 'response_message' se puede obtener a través del método 'send_message' y 'send_simple_message', que devuelve 'response_message'.

Subir un archivo

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

client.upload_file(file="your-path-file", text_for_file="Text accompanying the file", title_for_file="the title of file")

Aquí está la salida esperada:

Eliminar un mensaje

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

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

client.delete_message(message=response_message)

Eliminar un archivo

from botcity.plugins.slack import BotSlackPlugin

client = BotSlackPlugin(slack_token='<your_token>', channel='<channel_to_interact>')

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

client.delete_file(file=load_file_response)