Skip to main content

Python wrapper for the Slack Blocks API

Project description

slackblocks

Licence: MIT Licence: BSD-3-Clause Python Versions PyPI Downloads Build Status Docs

What is it?

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

Documentation

Full documentation is provided here.

Requirements

slackblocks requires Python >= 3.8.

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

Installation

pip install slackblocks

Basic 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 use is the ability to unpack the objects directly into the (Legacy) 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)

Or the modern Python Slack SDK:

from os import environ
from slack_sdk 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 dual BSD-3.0 and MIT licensed (use what suits you best).

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-1.1.1.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

slackblocks-1.1.1-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

File details

Details for the file slackblocks-1.1.1.tar.gz.

File metadata

  • Download URL: slackblocks-1.1.1.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.12 Linux/6.11.0-1013-azure

File hashes

Hashes for slackblocks-1.1.1.tar.gz
Algorithm Hash digest
SHA256 927988764e7089a0a09dc7bb423055572333ef952af5f2c92ce8c0366e2e9b0e
MD5 5f511a86c028ab7ae75b676414fe0d10
BLAKE2b-256 6aa2c986016eb87f1b42ce06bb0947bc4523c8e4f3fa02a232cae402bc20f83d

See more details on using hashes here.

File details

Details for the file slackblocks-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: slackblocks-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 36.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.12 Linux/6.11.0-1013-azure

File hashes

Hashes for slackblocks-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8eff073b8c397d4b64593fe5c428137079ec6df75f8de97932738db8e7db7c0b
MD5 987f56a51b7de7b939f1729a4955056d
BLAKE2b-256 b12fc4d979055f5b60383a87fd6baf4bba580f7c89e7acb53edf6631b49ddc99

See more details on using hashes here.

Supported by

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