Skip to main content

Python wrapper for the Slack Blocks API

Project description

slackblocks

PyPI - License Python Versions PyPI Downloads Build Status

What is it?

slackblocks is a Python API for building messages in the fancy Slack Block Kit API.

It was created by Nicholas Lambourne for the UQCS Slack Bot because he hates writing JSON, naturally this project has subsequently involved writing more JSON than if he'd done the original task by hand.

Requirements

slackblocks requires Python >= 3.7.

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!"
            }
        }
    ]
}

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.

Can I use this in my project?

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slackblocks-0.9.15.tar.gz (17.8 kB view hashes)

Uploaded Source

Built Distribution

slackblocks-0.9.15-py3-none-any.whl (20.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page