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.3.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.3-py3-none-any.whl (38.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: slackblocks-1.2.3.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.14 Linux/6.11.0-1018-azure

File hashes

Hashes for slackblocks-1.2.3.tar.gz
Algorithm Hash digest
SHA256 e50e0d2d608631f8544aa170f6864432365fd45690a5b62bbb441e9ddbde73b7
MD5 1f67897779c11e2af43605dbafd13d85
BLAKE2b-256 bd1bbc670f20411b345f6b3701bf4b4fec0e5dc56bfd02d0137a81fc183fcdfe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: slackblocks-1.2.3-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.14 Linux/6.11.0-1018-azure

File hashes

Hashes for slackblocks-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 88e1793f96fa75f4876ee926f2b28130426310673b7c814295e0dda91c0584b6
MD5 2d00b19b4ce7fa80c30986a10287108e
BLAKE2b-256 cf8a569b042db9028596f2792b5bc35237b7e04dfe16efb57df12eb1f2c4b61c

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