Releases: slackapi/bolt-python
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-sdkfrom 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
References
version 1.1.5
version 1.1.4
version 1.1.3
version 1.1.2
New Features
v1.0 authorize compatible mode
Now you can use InstallationStore's v1.0 compatible mode in authorize.
Setting App/AsyncApp's installation_store_bot_only constructor argument as True works in the same manner as v1.0 authorize. If you manually initialize InstallationStoreAuthorize, bot_only flag in it is the one you can configure. See the pull request #171 for more details.
installation_store = MyInstallationStore()
oauth_state_store = MyOAuthStateStore()
app = App(
# If you want to keep using only `#find_bot` for token retrieval,
# you can configure installation_store_bot_only as True
installation_store_bot_only=True,
oauth_settings=OAuthSettings(
installation_store=installation_store,
state_store=oauth_state_store,
),
)NOTE: If you use installation_store_bot_only flag in OAuthFlow or OAuthSettings, please upgrade to v1.1.3 or higher.
Changes
- #171 Add v1.0 compatible mode to #148 Org-wide App support - Thanks @seratch
- #173 #170 Remove the possibility of issue #170 by removing emoji from the boot message only for Windows - Thanks @athifongoqa @seratch
- #172 Fix Django app example to run with v1.1 - Thanks @vokey