https://github.com/nicklambourne/slackblocks
:game_die: Python API for Building Messages Using the Slack Block Kit API
https://github.com/nicklambourne/slackblocks
blocks python slack slack-api slack-bot
Last synced: 5 months ago
JSON representation
:game_die: Python API for Building Messages Using the Slack Block Kit API
- Host: GitHub
- URL: https://github.com/nicklambourne/slackblocks
- Owner: nicklambourne
- License: mit
- Created: 2019-07-14T13:33:22.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-18T23:43:23.000Z (5 months ago)
- Last Synced: 2024-11-18T23:49:41.814Z (5 months ago)
- Topics: blocks, python, slack, slack-api, slack-bot
- Language: Python
- Homepage:
- Size: 3.51 MB
- Stars: 63
- Watchers: 2
- Forks: 25
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# slackblocks



[](https://pypi.org/project/slackblocks/#history)
[](https://pepy.tech/project/slackblocks)
[](https://github.com/nicklambourne/slackblocks/actions)
[](https://nicklambourne.github.io/slackblocks)## What is it?
`slackblocks` is a Python API for building messages in the fancy Slack [Block Kit API](https://api.slack.com/block-kit)## Documentation
Full documentation is provided [here](https://nicklambourne.github.io/slackblocks/latest/).## Requirements
`slackblocks` requires Python >= 3.8.As of version 0.1.0 it has no dependencies outside the Python standard library.
## Installation
```bash
pip install slackblocks
```## Basic Usage
```python
from slackblocks import Message, SectionBlockblock = SectionBlock("Hello, world!")
message = Message(channel="#general", blocks=block)
message.json()```
Will produce the following JSON string:
```json
{
"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](https://pypi.org/project/slackclient/) in order to send messages:```python
from os import environ
from slack import WebClient
from slackblocks import Message, SectionBlockclient = 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](https://pypi.org/project/slack-sdk/):
```python
from os import environ
from slack_sdk import WebClient
from slackblocks import Message, SectionBlockclient = 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).