slackblocks
is a Python API for building messages in the fancy new Slack Block Kit API.
It was created by Nicholas Lambourne for the UQCS Slack Bot because he hates writing JSON.
N.B: This is still WIP software and some of the more tricky interactive Block elements have yet to be implemented.
slackblocks
requires Python >= 3.6.
As of version 0.1.0 it has no dependencies outside the Python standard library.
pip install slackblocks
from slackblocks import Message, SectionBlock
block = SectionBlock("Hello, world!")
message = Message(channel="#general", blocks=block)
message.json()
Will produce the following JSON string:
{
"channel": "#general",
"mrkdwn": true,
"blocks": [
{
"type": "section",
"block_id": "992ceb6b-9ad4-496b-b8e6-1bd8a632e8b3",
"text": {
"type": "mrkdwn",
"text": "Hello, world!",
"verbatim": false
}
}
]
}
Which can be sent as payload to the Slack message API HTTP endpoints.
Of more practical uses is the ability to unpack the objects directly into the Python Slack Client in order to send messages:
from os import environ
from slack import WebClient
from slackblocks import Message, SectionBlock
client = WebClient(token=environ["SLACK_API_TOKEN"])
block = SectionBlock("Hello, world!")
message = Message(channel="#general", blocks=block)
response = client.chat_postMessage(**message)
Note the **
operator in front of the message
object.
Yes, please do! The code is all open source and BSD-3.0 licensed.