Releases: slackapi/bolt-python
version 1.4.2
version 1.4.1
Changes
References
version 1.4.0
This release upgrades the underlying slack-sdk
package from 3.3 to 3.4 (or higher). Refer to the package's release note for more details: https://github.com/slackapi/python-slack-sdk/releases/tag/v3.4.0
Changes
References
version 1.3.2
Changes
This patch version upgrades the minimum slack-sdk version from 3.3.1 to 3.3.2 for proxy issue in the built-in SocketModeClient. Also, Socket Mode adapter supports newly added proxy_headers
argument in its constructor. Refer to https://github.com/slackapi/python-slack-sdk/releases/tag/v3.3.2 for the underlying changes.
References
version 1.3.1
Changes
- #232 #233 Unmatched message listener middleware can be called - Thanks @Beartime234 @seratch
References
version 1.3.0
This release upgrades the underlying slack-sdk
package from 3.2 to 3.3. Refer to the package's release note for more details: https://github.com/slackapi/python-slack-sdk/releases/tag/v3.3.0
Changes
- Upgrade
slack-sdk
from 3.2 to 3.3 - Thanks @seratch - #224 #113 Workflow steps decorator - Thanks @seratch
- #220 Correct Event API document - Thanks @mwbrooks
References
version 1.2.3
Changes
References
version 1.2.2
Changes
- #199 #201 Improvement related to #199: add event type name validation - Thanks @cgamio @seratch
- #212 #208 AsyncOAuthFlow run_installation missing team_name and enterprise_name fields in returned Installation - Thanks @jwelch92 @seratch
- #213 #210 AsyncOAuthSettings uses CallbackOptions instead of AsyncCallbackOptions - Thanks @jwelch92 @seratch
References
version 1.2.1
Changes
References
version 1.2.0
New Features
Socket Mode
This version includes support for Socket Mode, which enables developers to receive interactivy payalods and events through WebSocket connections.
https://api.slack.com/socket-mode
For WebSocket connection handling, there are four implementations including major 3rd party open-source libraries.
Here is a minimal working example with the built-in WebSocket client. You can switch to other implementation by changing the imports and adding the extra dependencies (websocket_client, aiohttp, websockets).
import os
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
# Install the Slack app and get xoxb- token in advance
app = App(token=os.environ["SLACK_BOT_TOKEN"])
if __name__ == "__main__":
# export SLACK_APP_TOKEN=xapp-***
# export SLACK_BOT_TOKEN=xoxb-***
SocketModeHandler(app, os.environ["SLACK_APP_TOKEN"]).start()
If you want to use asyncio for everything, you can use aiohttp
or websockets
(along with aiohttp for AsyncWebClient
). AsyncSocketModeHandler
requires all of your middleware/listeners to be compatible with the async/await programming style.
from slack_bolt.app.async_app import AsyncApp
# The default is the aiohttp based implementation
from slack_bolt.adapter.socket_mode.async_handler import AsyncSocketModeHandler
app = AsyncApp(token=os.environ["SLACK_BOT_TOKEN"])
async def main():
handler = AsyncSocketModeHandler(app, os.environ["SLACK_APP_TOKEN"])
await handler.start_async()
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Changes
- #108 #160 #176 #159 #200 Socket Mode support - Thanks @seratch @stevegill
- #174 #192 #202 Enable using class/instance methods for middleware/listners - Thanks @liuyangc3 @seratch
- #197 #198 Fix a bug where bot messages from class apps won't be passed to app.message listeners - Thanks @uc-dang-tiki @seratch
- #186 #183 Add an easier way to configure the direct install URL on App Directory