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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slackblocks-1.2.4-py3-none-any.whl (38.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: slackblocks-1.2.4.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.15 Linux/6.17.0-1010-azure

File hashes

Hashes for slackblocks-1.2.4.tar.gz
Algorithm Hash digest
SHA256 4e9fa06ea105a0bc53cd3e6d80e3ba7f8bfdcb4475e8ca60702cf1c48f067cdb
MD5 8ef9203d1630fecf0ba8f2b1f858fe72
BLAKE2b-256 731b7aaf9735fd11882773a4c86c02fdd7c8f3a3f15c838c5a64b5568e3b11d9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: slackblocks-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.15 Linux/6.17.0-1010-azure

File hashes

Hashes for slackblocks-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1e8bf251096e1528684ccb6ce33e45de55275ec8594adbbeb8e2f25d07e9c7db
MD5 6f28e3bdf989ea3d35042ca907cdafbb
BLAKE2b-256 ac7f1f5e88c90a8ff71c3274996f3229e8cdb96f16f810d88d92d57f0a5ee15a

See more details on using hashes here.

Supported by

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