Skip to content

🎲 Python API for Building Messages Using the Slack Block Kit API

License

Notifications You must be signed in to change notification settings

YesYouKenSpace/slackblocks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Disclaimer!

kennethtxytqw is not the original author of this library. This is the original. This is a temporary fork made to resolve a bug, nicklambourne#1, which is blocking some of my teams' development.

slackblocks

Build Status

What is it?

slackblocks is 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.

As it turns out, the functionality that he was actually after exists in the outdated Slack Secondary Attachments API, but he was already in too deep to turn back.

N.B: This is still WIP software and I some of the more tricky interactive Block elements have yet to be implemented.

Requirements

slackblocks requires Python >= 3.6.

As of version 0.1.0 it has no dependencies outside the Python standard library.

Installation

pip install slackblocks

Usage

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 use is the ability to unpack the objects directly into the Python Slack Client 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.

Can I use this in my project?

Yes, please do! The code is all open source and BSD-3.0 licensed.

About

🎲 Python API for Building Messages Using the Slack Block Kit API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%