diff --git a/.github/ISSUE_TEMPLATE/03_document.md b/.github/ISSUE_TEMPLATE/03_document.md index 3ce4e48e5..4eb5af847 100644 --- a/.github/ISSUE_TEMPLATE/03_document.md +++ b/.github/ISSUE_TEMPLATE/03_document.md @@ -10,7 +10,7 @@ assignees: '' ### The page URLs -* https://slack.dev/bolt-python/ +* https://docs.slack.dev/tools/bolt-python/ ## Requirements diff --git a/README.md b/README.md index b3f78adb0..39747df40 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ ngrok http 3000 ## Running a Socket Mode app -If you use [Socket Mode](https://api.slack.com/socket-mode) for running your app, `SocketModeHandler` is available for it. +If you use [Socket Mode](https://docs.slack.dev/apis/events-api/using-socket-mode/) for running your app, `SocketModeHandler` is available for it. ```python import os @@ -91,7 +91,7 @@ python app.py ## Listening for events -Apps typically react to a collection of incoming events, which can correspond to [Events API events](https://api.slack.com/events-api), [actions](https://api.slack.com/interactivity/components), [shortcuts](https://api.slack.com/interactivity/shortcuts), [slash commands](https://api.slack.com/interactivity/slash-commands) or [options requests](https://api.slack.com/reference/block-kit/block-elements#external_select). For each type of +Apps typically react to a collection of incoming events, which can correspond to [Events API events](https://docs.slack.dev/apis/events-api/), [actions](https://docs.slack.dev/block-kit/#making-things-interactive), [shortcuts](https://docs.slack.dev/interactivity/implementing-shortcuts/), [slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/) or [options requests](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#external_select). For each type of request, there's a method to build a listener function. ```python @@ -138,12 +138,12 @@ Most of the app's functionality will be inside listener functions (the `fn` para | Argument | Description | | :---: | :--- | | `body` | Dictionary that contains the entire body of the request (superset of `payload`). Some accessory data is only available outside of the payload (such as `trigger_id` and `authorizations`). -| `payload` | Contents of the incoming event. The payload structure depends on the listener. For example, for an Events API event, `payload` will be the [event type structure](https://api.slack.com/events-api#event_type_structure). For a block action, it will be the action from within the `actions` list. The `payload` dictionary is also accessible via the alias corresponding to the listener (`message`, `event`, `action`, `shortcut`, `view`, `command`, or `options`). For example, if you were building a `message()` listener, you could use the `payload` and `message` arguments interchangably. **An easy way to understand what's in a payload is to log it**. | +| `payload` | Contents of the incoming event. The payload structure depends on the listener. For example, for an Events API event, `payload` will be the [event type structure](https://docs.slack.dev/apis/events-api/#event-type-structure). For a block action, it will be the action from within the `actions` list. The `payload` dictionary is also accessible via the alias corresponding to the listener (`message`, `event`, `action`, `shortcut`, `view`, `command`, or `options`). For example, if you were building a `message()` listener, you could use the `payload` and `message` arguments interchangably. **An easy way to understand what's in a payload is to log it**. | | `context` | Event context. This dictionary contains data about the event and app, such as the `botId`. Middleware can add additional context before the event is passed to listeners. -| `ack` | Function that **must** be called to acknowledge that your app received the incoming event. `ack` exists for all actions, shortcuts, view submissions, slash command and options requests. `ack` returns a promise that resolves when complete. Read more in [Acknowledging events](https://tools.slack.dev/bolt-python/concepts/acknowledge). +| `ack` | Function that **must** be called to acknowledge that your app received the incoming event. `ack` exists for all actions, shortcuts, view submissions, slash command and options requests. `ack` returns a promise that resolves when complete. Read more in [Acknowledging events](https://docs.slack.dev/tools/bolt-python/concepts/acknowledge/). | `respond` | Utility function that responds to incoming events **if** it contains a `response_url` (shortcuts, actions, and slash commands). | `say` | Utility function to send a message to the channel associated with the incoming event. This argument is only available when the listener is triggered for events that contain a `channel_id` (the most common being `message` events). `say` accepts simple strings (for plain-text messages) and dictionaries (for messages containing blocks). -| `client` | Web API client that uses the token associated with the event. For single-workspace installations, the token is provided to the constructor. For multi-workspace installations, the token is returned by using [the OAuth library](https://tools.slack.dev/bolt-python/concepts/authenticating-oauth), or manually using the `authorize` function. +| `client` | Web API client that uses the token associated with the event. For single-workspace installations, the token is provided to the constructor. For multi-workspace installations, the token is returned by using [the OAuth library](https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth/), or manually using the `authorize` function. | `logger` | The built-in [`logging.Logger`](https://docs.python.org/3/library/logging.html) instance you can use in middleware/listeners. | `complete` | Utility function used to signal the successful completion of a custom step execution. This tells Slack to proceed with the next steps in the workflow. This argument is only available with the `.function` and `.action` listener when handling custom workflow step executions. | `fail` | Utility function used to signal that a custom step failed to complete. This tells Slack to stop the workflow execution. This argument is only available with the `.function` and `.action` listener when handling custom workflow step executions. @@ -192,7 +192,7 @@ Apps can be run the same way as the syncronous example above. If you'd prefer an ## Getting Help -[The documentation](https://tools.slack.dev/bolt-python) has more information on basic and advanced concepts for Bolt for Python. Also, all the Python module documents of this library are available [here](https://tools.slack.dev/bolt-python/reference/). +[The documentation](https://docs.slack.dev/tools/bolt-python/) has more information on basic and advanced concepts for Bolt for Python. Also, all the Python module documents of this library are available [here](https://docs.slack.dev/tools/bolt-python/reference/). If you otherwise get stuck, we're here to help. The following are the best ways to get assistance working through your issue: diff --git a/docs/english/tutorial/custom-steps-workflow-builder-existing/custom-steps-workflow-builder-existing.md b/docs/english/tutorial/custom-steps-workflow-builder-existing/custom-steps-workflow-builder-existing.md index 0441b033c..c3c5e2af7 100644 --- a/docs/english/tutorial/custom-steps-workflow-builder-existing/custom-steps-workflow-builder-existing.md +++ b/docs/english/tutorial/custom-steps-workflow-builder-existing/custom-steps-workflow-builder-existing.md @@ -9,7 +9,7 @@ If you followed along with our [create a custom step for Workflow Builder: new a In this tutorial we will: - Start with an existing Bolt app - Add a custom **workflow step** in the [app settings](https://api.slack.com/apps) -- Wire up the new step to a **function listener** in our project, using the [Bolt for Python](https://slack.dev/bolt-python/) framework +- Wire up the new step to a **function listener** in our project, using the [Bolt for Python](https://docs.slack.dev/tools/bolt-python/) framework - See the step as a custom workflow step in Workflow Builder ## Prerequisites {#prereqs} diff --git a/docs/reference/app/app.html b/docs/reference/app/app.html index d1224dd5d..3ee02b07c 100644 --- a/docs/reference/app/app.html +++ b/docs/reference/app/app.html @@ -117,10 +117,10 @@
Refer to https://slack.dev/bolt-python/tutorial/getting-started for details.
+Refer to https://docs.slack.dev/tools/bolt-python/building-an-app for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces, -refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.loggerblocks.attachments.blocks.attachments.To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new interactive_message action listener.
-Refer to https://api.slack.com/legacy/message-buttons for details.
def block_action(self,
constraints: str | Pattern | Dict[str, str | Pattern],
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1740,7 +1740,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1751,7 +1751,7 @@ Args
return __call__
Registers a new block_actions action listener.
-Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
def block_suggestion(self,
action_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1805,7 +1805,7 @@ Args
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1836,7 +1836,7 @@ Args
# Pass a function to this method
app.command("/echo")(repeat_text)
-Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new dialog_cancellation listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_submission(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1926,7 +1926,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1936,7 +1936,7 @@ Args
return __call__
Registers a new dialog_submission listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_suggestion(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1953,7 +1953,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1963,7 +1963,7 @@ Args
return __call__
Registers a new dialog_suggestion listener.
-Refer to https://api.slack.com/dialogs for details.
def dispatch(self,
req: BoltRequest) ‑> BoltResponse
@@ -2189,7 +2189,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -2221,7 +2221,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
-Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://api.slack.com/events/message for details of message events.
Refer to https://docs.slack.dev/reference/events/message/ for details of message events.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://slack.dev/bolt-python/concepts#global-middleware for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/global-middleware for details.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to the following documents for details:
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Steps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/Registers a new step from app listener.
Unlike others, this method doesn't behave as a decorator.
If you want to register a step from app by a decorator, use WorkflowStepBuilder's methods.
Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
For further information about WorkflowStep specific function arguments
such as configure, update, complete, and fail,
@@ -2921,7 +2921,7 @@
Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new view_closed listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details.
def view_submission(self,
constraints: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -3018,7 +3018,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -3028,7 +3028,7 @@ Args
return __call__
Registers a new view_submission listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details.
Refer to https://slack.dev/bolt-python/concepts#async for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/async for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces, -refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.loggerblocks.attachments.blocks.attachments.To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Registers a new interactive_message action listener.
-Refer to https://api.slack.com/legacy/message-buttons for details.
def block_action(self,
constraints: str | Pattern | Dict[str, str | Pattern],
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -1900,7 +1900,7 @@ Returns
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1911,7 +1911,7 @@ Returns
return __call__
Registers a new block_actions action listener.
-Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
def block_suggestion(self,
action_id: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -1965,7 +1965,7 @@ Returns
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -1996,7 +1996,7 @@ Returns
# Pass a function to this method
app.command("/echo")(repeat_text)
-Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Registers a new dialog_submission listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_submission(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -2086,7 +2086,7 @@ Args
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -2096,7 +2096,7 @@ Args
return __call__
Registers a new dialog_submission listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_suggestion(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -2113,7 +2113,7 @@ Args
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -2123,7 +2123,7 @@ Args
return __call__
Registers a new dialog_suggestion listener.
-Refer to https://api.slack.com/dialogs for details.
def enable_token_revocation_listeners(self) ‑> None
@@ -2229,7 +2229,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -2261,7 +2261,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
-Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Refer to https://api.slack.com/events/message for details of message events.
Refer to https://docs.slack.dev/reference/events/message/ for details of message events.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Refer to the following documents for details:
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Steps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/Registers a new step from app listener.
Unlike others, this method doesn't behave as a decorator.
If you want to register a step from app by a decorator, use AsyncWorkflowStepBuilder's methods.
Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
For further information about AsyncWorkflowStep specific function arguments
such as configure, update, complete, and fail,
@@ -2978,7 +2978,7 @@
Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Registers a new view_closed listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details.
def view_submission(self,
constraints: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -3075,7 +3075,7 @@ Args
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -3085,7 +3085,7 @@ Args
return __call__
Registers a new view_submission listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details.
def web_app(self, path: str = '/slack/events', port: int = 3000) ‑> aiohttp.web_app.Application
diff --git a/docs/reference/app/index.html b/docs/reference/app/index.html
index 857fb22c8..a46bc2e71 100644
--- a/docs/reference/app/index.html
+++ b/docs/reference/app/index.html
@@ -136,10 +136,10 @@ Classes
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
- Refer to https://slack.dev/bolt-python/tutorial/getting-started for details.
+ Refer to https://docs.slack.dev/tools/bolt-python/building-an-app for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces,
- refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+ refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.
Args:
logger: The custom logger that can be used in this app.
@@ -648,7 +648,7 @@ Classes
# Pass a function to this method
app.middleware(middleware_func)
- Refer to https://slack.dev/bolt-python/concepts#global-middleware for details.
+ Refer to https://docs.slack.dev/tools/bolt-python/concepts/global-middleware for details.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -694,7 +694,7 @@ Classes
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new step from app listener.
@@ -712,7 +712,7 @@ Classes
# Pass Step to set up listeners
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -729,7 +729,7 @@ Classes
warnings.warn(
(
"Steps from apps for legacy workflows are now deprecated. "
- "Use new custom steps: https://api.slack.com/automation/functions/custom-bolt"
+ "Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/"
),
category=DeprecationWarning,
)
@@ -806,7 +806,7 @@ Classes
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -844,7 +844,7 @@ Classes
# Pass a function to this method
app.message(":wave:")(say_hello)
- Refer to https://api.slack.com/events/message for details of `message` events.
+ Refer to https://docs.slack.dev/reference/events/message/ for details of `message` events.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -955,7 +955,7 @@ Classes
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1002,7 +1002,7 @@ Classes
# Pass a function to this method
app.shortcut("open_modal")(open_modal)
- Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+ Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1070,9 +1070,9 @@ Classes
# Pass a function to this method
app.action("approve_button")(update_message)
- * Refer to https://api.slack.com/reference/interaction-payloads/block-actions for actions in `blocks`.
- * Refer to https://api.slack.com/legacy/message-buttons for actions in `attachments`.
- * Refer to https://api.slack.com/dialogs for actions in dialogs.
+ * Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for actions in `blocks`.
+ * Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for actions in `attachments`.
+ * Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for actions in dialogs.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1098,7 +1098,7 @@ Classes
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1115,7 +1115,7 @@ Classes
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `interactive_message` action listener.
- Refer to https://api.slack.com/legacy/message-buttons for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1131,7 +1131,7 @@ Classes
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1147,7 +1147,7 @@ Classes
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_cancellation` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1188,7 +1188,7 @@ Classes
# Pass a function to this method
app.view("view_1")(handle_submission)
- Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1214,7 +1214,7 @@ Classes
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1230,7 +1230,7 @@ Classes
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_closed` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_closed for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1271,8 +1271,8 @@ Classes
Refer to the following documents for details:
- * https://api.slack.com/reference/block-kit/block-elements#external_select
- * https://api.slack.com/reference/block-kit/block-elements#external_multi_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#external_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#external_multi_select
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1312,7 +1312,7 @@ Classes
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1462,9 +1462,9 @@ Classes
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
-Refer to https://slack.dev/bolt-python/tutorial/getting-started for details.
+Refer to https://docs.slack.dev/tools/bolt-python/building-an-app for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces, -refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.loggerblocks.attachments.blocks.attachments.To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new interactive_message action listener.
-Refer to https://api.slack.com/legacy/message-buttons for details.
def block_action(self,
constraints: str | Pattern | Dict[str, str | Pattern],
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1759,7 +1759,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1770,7 +1770,7 @@ Args
return __call__
Registers a new block_actions action listener.
-Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
def block_suggestion(self,
action_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1824,7 +1824,7 @@ Args
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1855,7 +1855,7 @@ Args
# Pass a function to this method
app.command("/echo")(repeat_text)
-Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new dialog_cancellation listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_submission(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1945,7 +1945,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1955,7 +1955,7 @@ Args
return __call__
Registers a new dialog_submission listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_suggestion(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1972,7 +1972,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1982,7 +1982,7 @@ Args
return __call__
Registers a new dialog_suggestion listener.
-Refer to https://api.slack.com/dialogs for details.
def dispatch(self,
req: BoltRequest) ‑> BoltResponse
@@ -2208,7 +2208,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -2240,7 +2240,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
-Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://api.slack.com/events/message for details of message events.
Refer to https://docs.slack.dev/reference/events/message/ for details of message events.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://slack.dev/bolt-python/concepts#global-middleware for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/global-middleware for details.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to the following documents for details:
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Steps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/Registers a new step from app listener.
Unlike others, this method doesn't behave as a decorator.
If you want to register a step from app by a decorator, use WorkflowStepBuilder's methods.
Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
For further information about WorkflowStep specific function arguments
such as configure, update, complete, and fail,
@@ -2940,7 +2940,7 @@
Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new view_closed listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details.
def view_submission(self,
constraints: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -3037,7 +3037,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -3047,7 +3047,7 @@ Args
return __call__
Registers a new view_submission listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details.
Refer to https://slack.dev/bolt-python/concepts#async for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/async for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces, -refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.loggerblocks.attachments.blocks.attachments.To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Registers a new interactive_message action listener.
-Refer to https://api.slack.com/legacy/message-buttons for details.
def block_action(self,
constraints: str | Pattern | Dict[str, str | Pattern],
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -1991,7 +1991,7 @@ Returns
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -2002,7 +2002,7 @@ Returns
return __call__
Registers a new block_actions action listener.
-Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
def block_suggestion(self,
action_id: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -2056,7 +2056,7 @@ Returns
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -2087,7 +2087,7 @@ Returns
# Pass a function to this method
app.command("/echo")(repeat_text)
-Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Registers a new dialog_submission listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_submission(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -2177,7 +2177,7 @@ Args
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -2187,7 +2187,7 @@ Args
return __call__
Registers a new dialog_submission listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_suggestion(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -2204,7 +2204,7 @@ Args
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -2214,7 +2214,7 @@ Args
return __call__
Registers a new dialog_suggestion listener.
-Refer to https://api.slack.com/dialogs for details.
def enable_token_revocation_listeners(self) ‑> None
@@ -2320,7 +2320,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -2352,7 +2352,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
-Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Refer to https://api.slack.com/events/message for details of message events.
Refer to https://docs.slack.dev/reference/events/message/ for details of message events.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Refer to the following documents for details:
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Steps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/Registers a new step from app listener.
Unlike others, this method doesn't behave as a decorator.
If you want to register a step from app by a decorator, use AsyncWorkflowStepBuilder's methods.
Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
For further information about AsyncWorkflowStep specific function arguments
such as configure, update, complete, and fail,
@@ -3069,7 +3069,7 @@
Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.async_args's API document.
Registers a new view_closed listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details.
def view_submission(self,
constraints: str | Pattern,
matchers: Sequence[Callable[..., Awaitable[bool]]] | None = None,
middleware: Sequence[Callable | AsyncMiddleware] | None = None) ‑> Callable[..., Callable[..., Awaitable[BoltResponse | None]] | None]
@@ -3166,7 +3166,7 @@ Args
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -3176,7 +3176,7 @@ Args
return __call__
Registers a new view_submission listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details.
def web_app(self, path: str = '/slack/events', port: int = 3000) ‑> aiohttp.web_app.Application
diff --git a/docs/reference/authorization/index.html b/docs/reference/authorization/index.html
index 64ca14f0e..19de311df 100644
--- a/docs/reference/authorization/index.html
+++ b/docs/reference/authorization/index.html
@@ -39,7 +39,7 @@ Module slack_bolt.authorization
Authorization is the process of determining which Slack credentials should be available
while processing an incoming Slack event.
-Refer to https://slack.dev/bolt-python/concepts#authorization for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/authorization for details.
Sub-modules
diff --git a/docs/reference/context/assistant/thread_context_store/file/index.html b/docs/reference/context/assistant/thread_context_store/file/index.html
index 4a5d944e1..cbb4e4db6 100644
--- a/docs/reference/context/assistant/thread_context_store/file/index.html
+++ b/docs/reference/context/assistant/thread_context_store/file/index.html
@@ -48,7 +48,7 @@ Classes
class FileAssistantThreadContextStore
-(base_dir: str = '/Users/wbergamin/.bolt-app-assistant-thread-contexts')
+(base_dir: str = '/Users/eden.zimbelman/.bolt-app-assistant-thread-contexts')
-
diff --git a/docs/reference/context/index.html b/docs/reference/context/index.html
index 65cb8054c..c761aa47e 100644
--- a/docs/reference/context/index.html
+++ b/docs/reference/context/index.html
@@ -40,7 +40,7 @@
Module slack_bolt.context
All listeners have access to a context dictionary, which can be used to enrich events with additional information.
Bolt automatically attaches information that is included in the incoming event,
like user_id, team_id, channel_id, and enterprise_id.
-Refer to https://slack.dev/bolt-python/concepts#context for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/context for details.
Sub-modules
diff --git a/docs/reference/index.html b/docs/reference/index.html
index 430e36813..1ce8cd134 100644
--- a/docs/reference/index.html
+++ b/docs/reference/index.html
@@ -36,9 +36,9 @@
Package slack_bolt
-A Python framework to build Slack apps in a flash with the latest platform features.Read the getting started guide and look at our code examples to learn how to build apps using Bolt.
+A Python framework to build Slack apps in a flash with the latest platform features.Read the getting started guide and look at our code examples to learn how to build apps using Bolt.
-- Website: https://slack.dev/bolt-python/
+- Website: https://docs.slack.dev/tools/bolt-python/
- GitHub repository: https://github.com/slackapi/bolt-python
- The class representing a Bolt app:
slack_bolt.app.app
@@ -257,10 +257,10 @@ Class variables
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
- Refer to https://slack.dev/bolt-python/tutorial/getting-started for details.
+ Refer to https://docs.slack.dev/tools/bolt-python/building-an-app for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces,
- refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+ refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.
Args:
logger: The custom logger that can be used in this app.
@@ -769,7 +769,7 @@ Class variables
# Pass a function to this method
app.middleware(middleware_func)
- Refer to https://slack.dev/bolt-python/concepts#global-middleware for details.
+ Refer to https://docs.slack.dev/tools/bolt-python/concepts/global-middleware for details.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -815,7 +815,7 @@ Class variables
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new step from app listener.
@@ -833,7 +833,7 @@ Class variables
# Pass Step to set up listeners
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -850,7 +850,7 @@ Class variables
warnings.warn(
(
"Steps from apps for legacy workflows are now deprecated. "
- "Use new custom steps: https://api.slack.com/automation/functions/custom-bolt"
+ "Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/"
),
category=DeprecationWarning,
)
@@ -927,7 +927,7 @@ Class variables
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -965,7 +965,7 @@ Class variables
# Pass a function to this method
app.message(":wave:")(say_hello)
- Refer to https://api.slack.com/events/message for details of `message` events.
+ Refer to https://docs.slack.dev/reference/events/message/ for details of `message` events.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1076,7 +1076,7 @@ Class variables
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1123,7 +1123,7 @@ Class variables
# Pass a function to this method
app.shortcut("open_modal")(open_modal)
- Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+ Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1191,9 +1191,9 @@ Class variables
# Pass a function to this method
app.action("approve_button")(update_message)
- * Refer to https://api.slack.com/reference/interaction-payloads/block-actions for actions in `blocks`.
- * Refer to https://api.slack.com/legacy/message-buttons for actions in `attachments`.
- * Refer to https://api.slack.com/dialogs for actions in dialogs.
+ * Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for actions in `blocks`.
+ * Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for actions in `attachments`.
+ * Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for actions in dialogs.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1219,7 +1219,7 @@ Class variables
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1236,7 +1236,7 @@ Class variables
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `interactive_message` action listener.
- Refer to https://api.slack.com/legacy/message-buttons for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1252,7 +1252,7 @@ Class variables
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1268,7 +1268,7 @@ Class variables
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_cancellation` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1309,7 +1309,7 @@ Class variables
# Pass a function to this method
app.view("view_1")(handle_submission)
- Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1335,7 +1335,7 @@ Class variables
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1351,7 +1351,7 @@ Class variables
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_closed` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_closed for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1392,8 +1392,8 @@ Class variables
Refer to the following documents for details:
- * https://api.slack.com/reference/block-kit/block-elements#external_select
- * https://api.slack.com/reference/block-kit/block-elements#external_multi_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#external_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#external_multi_select
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1433,7 +1433,7 @@ Class variables
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1583,9 +1583,9 @@ Class variables
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
-Refer to https://slack.dev/bolt-python/tutorial/getting-started for details.
+Refer to https://docs.slack.dev/tools/bolt-python/building-an-app for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces, -refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.loggerblocks.attachments.blocks.attachments.To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new interactive_message action listener.
-Refer to https://api.slack.com/legacy/message-buttons for details.
def block_action(self,
constraints: str | Pattern | Dict[str, str | Pattern],
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1880,7 +1880,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1891,7 +1891,7 @@ Args
return __call__
Registers a new block_actions action listener.
-Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
def block_suggestion(self,
action_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -1945,7 +1945,7 @@ Args
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1976,7 +1976,7 @@ Args
# Pass a function to this method
app.command("/echo")(repeat_text)
-Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new dialog_cancellation listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_submission(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -2066,7 +2066,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -2076,7 +2076,7 @@ Args
return __call__
Registers a new dialog_submission listener.
-Refer to https://api.slack.com/dialogs for details.
def dialog_suggestion(self,
callback_id: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -2093,7 +2093,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -2103,7 +2103,7 @@ Args
return __call__
Registers a new dialog_suggestion listener.
-Refer to https://api.slack.com/dialogs for details.
def dispatch(self,
req: BoltRequest) ‑> BoltResponse
@@ -2329,7 +2329,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -2361,7 +2361,7 @@ Args
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
-Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://api.slack.com/events/message for details of message events.
Refer to https://docs.slack.dev/reference/events/message/ for details of message events.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://slack.dev/bolt-python/concepts#global-middleware for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/global-middleware for details.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to the following documents for details:
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Steps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/Registers a new step from app listener.
Unlike others, this method doesn't behave as a decorator.
If you want to register a step from app by a decorator, use WorkflowStepBuilder's methods.
Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
For further information about WorkflowStep specific function arguments
such as configure, update, complete, and fail,
@@ -3061,7 +3061,7 @@
Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see slack_bolt.kwargs_injection.args's API document.
Registers a new view_closed listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details.
def view_submission(self,
constraints: str | Pattern,
matchers: Sequence[Callable[..., bool]] | None = None,
middleware: Sequence[Callable | Middleware] | None = None) ‑> Callable[..., Callable[..., BoltResponse | None] | None]
@@ -3158,7 +3158,7 @@ Args
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -3168,7 +3168,7 @@ Args
return __call__
Registers a new view_submission listener.
-Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details.
class FileAssistantThreadContextStore
-(base_dir: str = '/Users/wbergamin/.bolt-app-assistant-thread-contexts')
+(base_dir: str = '/Users/eden.zimbelman/.bolt-app-assistant-thread-contexts')
slack_bolt.lazy_listenerRefer to https://slack.dev/bolt-python/concepts#lazy-listeners for more details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/lazy-listeners for more details.
Verifies an incoming request by checking the validity of
x-slack-signature, x-slack-request-timestamp, and its body data.
Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
Verifies an incoming request by checking the validity of
x-slack-signature, x-slack-request-timestamp, and its body data.
Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
signing_secretA middleware can process request data before other middleware and listener functions.
Handles ssl_check requests.
-Refer to https://api.slack.com/interactivity/slash-commands for details.
verification_tokenbase_loggerA middleware can process request data before other middleware and listener functions.
Handles url_verification requests.
-Refer to https://api.slack.com/events/url_verification for details.
+Refer to https://docs.slack.dev/reference/events/url_verification/ for details.
base_loggerA middleware can process request data before other middleware and listener functions.
Verifies an incoming request by checking the validity of
x-slack-signature, x-slack-request-timestamp, and its body data.
Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
signing_secretA middleware can process request data before other middleware and listener functions.
Handles slack_bolt.middleware.ssl_check requests.
-Refer to https://api.slack.com/interactivity/slash-commands for details.
verification_tokenbase_loggerA middleware can process request data before other middleware and listener functions.
Handles url_verification requests.
-Refer to https://api.slack.com/events/url_verification for details.
+Refer to https://docs.slack.dev/reference/events/url_verification/ for details.
base_loggerVerifies an incoming request by checking the validity of
x-slack-signature, x-slack-request-timestamp, and its body data.
Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
Verifies an incoming request by checking the validity of
x-slack-signature, x-slack-request-timestamp, and its body data.
Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
signing_secretA middleware can process request data before other middleware and listener functions.
Verifies an incoming request by checking the validity of
x-slack-signature, x-slack-request-timestamp, and its body data.
Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
signing_secretA middleware can process request data before other middleware and listener functions.
Verifies an incoming request by checking the validity of
x-slack-signature, x-slack-request-timestamp, and its body data.
Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
signing_secretA middleware can process request data before other middleware and listener functions.
Handles ssl_check requests.
-Refer to https://api.slack.com/interactivity/slash-commands for details.
verification_tokenbase_loggerA middleware can process request data before other middleware and listener functions.
Handles slack_bolt.middleware.ssl_check.ssl_check requests.
-Refer to https://api.slack.com/interactivity/slash-commands for details.
verification_tokenbase_loggerA middleware can process request data before other middleware and listener functions.
Handles ssl_check requests.
-Refer to https://api.slack.com/interactivity/slash-commands for details.
verification_tokenbase_loggerA middleware can process request data before other middleware and listener functions.
Handles url_verification requests.
-Refer to https://api.slack.com/events/url_verification for details.
+Refer to https://docs.slack.dev/reference/events/url_verification/ for details.
base_loggerA middleware can process request data before other middleware and listener functions.
Handles url_verification requests.
-Refer to https://api.slack.com/events/url_verification for details.
+Refer to https://docs.slack.dev/reference/events/url_verification/ for details.
base_loggerA middleware can process request data before other middleware and listener functions.
Handles url_verification requests.
-Refer to https://api.slack.com/events/url_verification for details.
+Refer to https://docs.slack.dev/reference/events/url_verification/ for details.
base_loggerslack_bolt.oauthSlack OAuth flow support for building an app that is installable in any workspaces.
-Refer to https://slack.dev/bolt-python/concepts#authenticating-oauth for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth for details.
slack_bolt.requestIncoming request from Slack through either HTTP request or Socket Mode connection.
-Refer to https://api.slack.com/apis/connections for the two types of connections. +
Refer to https://docs.slack.dev/apis/events-api/ for the two types of connections. This interface encapsulates the difference between the two.
slack_bolt.responseThis interface represents Bolt's synchronous response to Slack.
In Socket Mode, the response data can be transformed to a WebSocket message. In the HTTP endpoint mode, the response data becomes an HTTP response data.
-Refer to https://api.slack.com/apis/connections for the two types of connections.
+Refer to https://docs.slack.dev/apis/events-api/ for the two types of connections.
slack_bolt.workflowsslack_bolt.workflows.step.utilitiesslack_bolt.workflows.step.async_step (if you use asyncio-based AsyncApp)Refer to https://api.slack.com/workflows/steps for details.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
Steps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/callback_idSteps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
class AsyncWorkflowStepBuilder:
"""Steps from apps
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
callback_id: Union[str, Pattern]
@@ -285,7 +285,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
This builder is supposed to be used as decorator.
@@ -327,7 +327,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
@@ -380,7 +380,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
@@ -433,7 +433,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
@@ -480,7 +480,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
@@ -555,10 +555,10 @@ Static methods
return _middleware
Steps from apps -Refer to https://api.slack.com/workflows/steps for details.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.Steps from apps for legacy workflows are now deprecated. -Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/This builder is supposed to be used as decorator.
my_step = AsyncWorkflowStep.builder("my_step")
@my_step.edit
@@ -659,7 +659,7 @@ Methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
@@ -685,7 +685,7 @@ Methods
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
Returns
@@ -709,7 +709,7 @@ Returns
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
@@ -754,7 +754,7 @@ Returns
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
You can use this method as decorator as well.
@my_step.edit
@@ -799,7 +799,7 @@ Args
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
@@ -844,7 +844,7 @@ Args
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
You can use this method as decorator as well.
@my_step.execute
@@ -889,7 +889,7 @@ Args
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
@@ -934,7 +934,7 @@ Args
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
You can use this method as decorator as well.
@my_step.save
diff --git a/docs/reference/workflows/step/index.html b/docs/reference/workflows/step/index.html
index 62d989976..50b52906b 100644
--- a/docs/reference/workflows/step/index.html
+++ b/docs/reference/workflows/step/index.html
@@ -174,7 +174,7 @@ Classes
)
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
def __init__(self, *, callback_id: str, client: WebClient, body: dict):
@@ -219,7 +219,7 @@ Classes
)
app.step(ws)
-Refer to https://api.slack.com/workflows/steps for details.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
class Fail
@@ -411,7 +411,7 @@ Classes
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Args:
callback_id: The callback_id for this step from app
@@ -453,7 +453,7 @@ Classes
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
"""
return WorkflowStepBuilder(
callback_id,
@@ -546,7 +546,7 @@ Classes
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Args
callback_id
@@ -598,7 +598,7 @@ Static methods
-
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
diff --git a/docs/reference/workflows/step/step.html b/docs/reference/workflows/step/step.html
index 6e1567bd6..0309acd88 100644
--- a/docs/reference/workflows/step/step.html
+++ b/docs/reference/workflows/step/step.html
@@ -78,7 +78,7 @@ Classes
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Args:
callback_id: The callback_id for this step from app
@@ -120,7 +120,7 @@ Classes
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
"""
return WorkflowStepBuilder(
callback_id,
@@ -213,7 +213,7 @@ Classes
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Args
callback_id
@@ -265,7 +265,7 @@ Static methods
-
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
@@ -280,7 +280,7 @@ Static methods
class WorkflowStepBuilder:
"""Steps from apps
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
callback_id: Union[str, Pattern]
@@ -298,7 +298,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
This builder is supposed to be used as decorator.
@@ -340,7 +340,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
@@ -394,7 +394,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
@@ -447,7 +447,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
@@ -494,7 +494,7 @@ Static methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
@@ -584,10 +584,10 @@ Static methods
return _middleware
Steps from apps
-Refer to https://api.slack.com/workflows/steps for details.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
This builder is supposed to be used as decorator.
my_step = WorkflowStep.builder("my_step")
@my_step.edit
@@ -703,7 +703,7 @@ Methods
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
@@ -729,7 +729,7 @@ Methods
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
Returns
@@ -753,7 +753,7 @@ Returns
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
@@ -799,7 +799,7 @@ Returns
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
You can use this method as decorator as well.
@my_step.edit
@@ -844,7 +844,7 @@ Args
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
@@ -889,7 +889,7 @@ Args
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
You can use this method as decorator as well.
@my_step.execute
@@ -934,7 +934,7 @@ Args
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
@@ -979,7 +979,7 @@ Args
Deprecated
Steps from apps for legacy workflows are now deprecated.
-Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
You can use this method as decorator as well.
@my_step.save
diff --git a/docs/reference/workflows/step/utilities/async_configure.html b/docs/reference/workflows/step/utilities/async_configure.html
index 008c35ab5..10f236c47 100644
--- a/docs/reference/workflows/step/utilities/async_configure.html
+++ b/docs/reference/workflows/step/utilities/async_configure.html
@@ -83,7 +83,7 @@ Classes
)
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
def __init__(self, *, callback_id: str, client: AsyncWebClient, body: dict):
@@ -131,7 +131,7 @@ Classes
)
app.step(ws)
-Refer to https://api.slack.com/workflows/steps for details.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
diff --git a/docs/reference/workflows/step/utilities/configure.html b/docs/reference/workflows/step/utilities/configure.html
index 26d646cf2..258bce312 100644
--- a/docs/reference/workflows/step/utilities/configure.html
+++ b/docs/reference/workflows/step/utilities/configure.html
@@ -83,7 +83,7 @@ Classes
)
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
def __init__(self, *, callback_id: str, client: WebClient, body: dict):
@@ -128,7 +128,7 @@ Classes
)
app.step(ws)
-Refer to https://api.slack.com/workflows/steps for details.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
diff --git a/examples/aws_lambda/README.md b/examples/aws_lambda/README.md
index 454f080a7..49a8f7da2 100644
--- a/examples/aws_lambda/README.md
+++ b/examples/aws_lambda/README.md
@@ -32,16 +32,16 @@ Instructions on how to set up and deploy each example are provided below.
`lazy_aws_lambda_config.yaml`
- Optionally enter a description for the role, such as "Bolt Python basic
role"
-3. Ensure you have created an app on api.slack.com/apps as per the [Getting
- Started Guide](https://slack.dev/bolt-python/tutorial/getting-started).
+3. Ensure you have created an app on api.slack.com/apps as per the
+ [Building an App](https://docs.slack.dev/tools/bolt-python/building-an-app) guide.
Ensure you have installed it to a workspace.
4. Ensure you have exported your Slack Bot Token and Slack Signing Secret for your
apps as the environment variables `SLACK_BOT_TOKEN` and
- `SLACK_SIGNING_SECRET`, respectively, as per the [Getting
- Started Guide](https://slack.dev/bolt-python/tutorial/getting-started).
+ `SLACK_SIGNING_SECRET`, respectively, as per the
+ [Building an App](https://docs.slack.dev/tools/bolt-python/building-an-app) guide.
5. You may want to create a dedicated virtual environment for this example app, as
- per the "Setting up your project" section of the [Getting
- Started Guide](https://slack.dev/bolt-python/tutorial/getting-started).
+ per the "Setting up your project" section of the
+ [Building an App](https://docs.slack.dev/tools/bolt-python/building-an-app) guide.
6. Let's deploy the Lambda! Run `./deploy_lazy.sh`. By default it deploys to the
us-east-1 region in AWS - you can change this at the top of `lazy_aws_lambda_config.yaml` if you wish.
7. Load up AWS Lambda inside the AWS Console - make sure you are in the correct
@@ -150,7 +150,7 @@ Let’s create a user role that will use the custom policy we created as well as
3. "Create Role"
### Create Slack App and Load your Lambda to AWS
-Ensure you have created an app on [api.slack.com/apps](https://api.slack.com/apps) as per the [Getting Started Guide](https://slack.dev/bolt-python/tutorial/getting-started). You do not need to ensure you have installed it to a workspace, as the OAuth flow will provide your app the ability to be installed by anyone.
+Ensure you have created an app on [api.slack.com/apps](https://api.slack.com/apps) as per the [Building an App](https://docs.slack.dev/tools/bolt-python/building-an-app) guide. You do not need to ensure you have installed it to a workspace, as the OAuth flow will provide your app the ability to be installed by anyone.
1. Remember those S3 buckets we made? You will need the names of these buckets again in the next step.
2. You need many environment variables exported! Specifically the following from api.slack.com/apps
diff --git a/examples/django/README.md b/examples/django/README.md
index c50681c5b..ca0460fd1 100644
--- a/examples/django/README.md
+++ b/examples/django/README.md
@@ -4,7 +4,7 @@ This example demonstrates how you can use Bolt for Python in your Django applica
### `simple_app` - Single-workspace App Example
-If you want to run a simple app like the one you've tried in the [Getting Started Guide](https://slack.dev/bolt-python/tutorial/getting-started), this is the right one for you. By default, this Django project runs this application. If you want to switch to OAuth flow supported one, modify `myslackapp/urls.py`.
+If you want to run a simple app like the one you've tried in the [Building an App](https://docs.slack.dev/tools/bolt-python/building-an-app) guide, this is the right one for you. By default, this Django project runs this application. If you want to switch to OAuth flow supported one, modify `myslackapp/urls.py`.
To run this app, all you need to do are:
@@ -31,7 +31,7 @@ python manage.py migrate
python manage.py runserver 0.0.0.0:3000
```
-As you did at [Getting Started Guide](https://slack.dev/bolt-python/tutorial/getting-started), configure ngrok or something similar to serve a public endpoint. Lastly,
+As you did at [Building an App](https://docs.slack.dev/tools/bolt-python/building-an-app) guide, configure ngrok or something similar to serve a public endpoint. Lastly,
* Go back to the Slack app configuration page
* Go to "Event Subscriptions"
@@ -54,7 +54,7 @@ To run this app, all you need to do are:
* Create a new Slack app configuration at https://api.slack.com/apps?new_app=1
* Go to "OAuth & Permissions"
* Add `app_mentions:read`, `chat:write` in Scopes > Bot Token Scopes
-* Follow the instructions [here](https://slack.dev/bolt-python/concepts#authenticating-oauth) for configuring OAuth flow supported Slack apps
+* Follow the instructions [here](https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth) for configuring OAuth flow supported Slack apps
You can start your Django application this way:
@@ -73,7 +73,7 @@ python manage.py migrate
python manage.py runserver 0.0.0.0:3000
```
-As you did at [Getting Started Guide](https://slack.dev/bolt-python/tutorial/getting-started), configure ngrok or something similar to serve a public endpoint. Lastly,
+As you did at [Building an App](https://docs.slack.dev/tools/bolt-python/building-an-app) guide, configure ngrok or something similar to serve a public endpoint. Lastly,
* Go back to the Slack app configuration page
* Go to "Event Subscriptions"
diff --git a/examples/getting_started/README.md b/examples/getting_started/README.md
index 63875a4dd..5d3c2f61d 100644
--- a/examples/getting_started/README.md
+++ b/examples/getting_started/README.md
@@ -1,5 +1,5 @@
# Getting Started with ⚡️ Bolt for Python
-> Slack app example from 📚 [Getting started with Bolt for Python][1]
+> Slack app example from 📚 [Building an App with Bolt for Python][1]
## Overview
@@ -42,6 +42,6 @@ ngrok http 3000
python3 app.py
```
-[1]: https://slack.dev/bolt-python/tutorial/getting-started
-[2]: https://slack.dev/bolt-python/
-[3]: https://slack.dev/bolt-python/tutorial/getting-started#setting-up-events
+[1]: https://docs.slack.dev/tools/bolt-python/building-an-app
+[2]: https://docs.slack.dev/tools/bolt-python/
+[3]: https://docs.slack.dev/tools/bolt-python/building-an-app#setting-up-events
diff --git a/examples/message_events.py b/examples/message_events.py
index 7658be276..3fd424060 100644
--- a/examples/message_events.py
+++ b/examples/message_events.py
@@ -32,7 +32,7 @@ def extract_subtype(body: dict, context: BoltContext, next: Callable):
next()
-# https://api.slack.com/events/message
+# https://docs.slack.dev/reference/events/message/
# Newly posted messages only
# or @app.event("message")
@app.event({"type": "message", "subtype": None})
@@ -55,8 +55,8 @@ def detect_deletion(say: Say, body: dict):
say(f"You've deleted a message: {text}")
-# https://api.slack.com/events/message/file_share
-# https://api.slack.com/events/message/bot_message
+# https://docs.slack.dev/reference/events/message/file_share
+# https://docs.slack.dev/reference/events/message/bot_message
@app.event(
event={"type": "message", "subtype": re.compile("(me_message)|(file_share)")},
middleware=[extract_subtype],
diff --git a/examples/readme_app.py b/examples/readme_app.py
index 963938658..fe81a0904 100644
--- a/examples/readme_app.py
+++ b/examples/readme_app.py
@@ -16,13 +16,13 @@ def log_request(logger, body, next):
return next()
-# Events API: https://api.slack.com/events-api
+# Events API: https://docs.slack.dev/apis/events-api/
@app.event("app_mention")
def event_test(say):
say("What's up?")
-# Interactivity: https://api.slack.com/interactivity
+# Interactivity: https://docs.slack.dev/interactivity/
@app.shortcut("callback-id-here")
# @app.command("/hello-bolt-python")
def open_modal(ack, client, logger, body):
diff --git a/examples/readme_async_app.py b/examples/readme_async_app.py
index c43d3af32..f11d308a0 100644
--- a/examples/readme_async_app.py
+++ b/examples/readme_async_app.py
@@ -28,13 +28,13 @@ async def log_request(logger, body, next):
return await next()
-# Events API: https://api.slack.com/events-api
+# Events API: https://docs.slack.dev/apis/events-api/
@app.event("app_mention")
async def event_test(say):
await say("What's up?")
-# Interactivity: https://api.slack.com/interactivity
+# Interactivity: https://docs.slack.dev/interactivity/
@app.shortcut("callback-id-here")
# @app.command("/hello-bolt-python")
async def open_modal(ack, client, logger, body):
diff --git a/examples/workflow_steps/async_steps_from_apps.py b/examples/workflow_steps/async_steps_from_apps.py
index 11566de6c..ed108cf5e 100644
--- a/examples/workflow_steps/async_steps_from_apps.py
+++ b/examples/workflow_steps/async_steps_from_apps.py
@@ -11,7 +11,7 @@
################################################################################
# Steps from apps for legacy workflows are now deprecated. #
-# Use new custom steps: https://api.slack.com/automation/functions/custom-bolt #
+# Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/ #
################################################################################
logging.basicConfig(level=logging.DEBUG)
diff --git a/examples/workflow_steps/async_steps_from_apps_decorator.py b/examples/workflow_steps/async_steps_from_apps_decorator.py
index 423048a47..e04884723 100644
--- a/examples/workflow_steps/async_steps_from_apps_decorator.py
+++ b/examples/workflow_steps/async_steps_from_apps_decorator.py
@@ -13,7 +13,7 @@
################################################################################
# Steps from apps for legacy workflows are now deprecated. #
-# Use new custom steps: https://api.slack.com/automation/functions/custom-bolt #
+# Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/ #
################################################################################
logging.basicConfig(level=logging.DEBUG)
diff --git a/examples/workflow_steps/async_steps_from_apps_primitive.py b/examples/workflow_steps/async_steps_from_apps_primitive.py
index 2e636e600..06a2956db 100644
--- a/examples/workflow_steps/async_steps_from_apps_primitive.py
+++ b/examples/workflow_steps/async_steps_from_apps_primitive.py
@@ -5,7 +5,7 @@
################################################################################
# Steps from apps for legacy workflows are now deprecated. #
-# Use new custom steps: https://api.slack.com/automation/functions/custom-bolt #
+# Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/ #
################################################################################
logging.basicConfig(level=logging.DEBUG)
diff --git a/examples/workflow_steps/steps_from_apps.py b/examples/workflow_steps/steps_from_apps.py
index efbb2ce65..b5f591700 100644
--- a/examples/workflow_steps/steps_from_apps.py
+++ b/examples/workflow_steps/steps_from_apps.py
@@ -8,7 +8,7 @@
################################################################################
# Steps from apps for legacy workflows are now deprecated. #
-# Use new custom steps: https://api.slack.com/automation/functions/custom-bolt #
+# Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/ #
################################################################################
logging.basicConfig(level=logging.DEBUG)
diff --git a/examples/workflow_steps/steps_from_apps_decorator.py b/examples/workflow_steps/steps_from_apps_decorator.py
index 64ddfcc20..1558e825a 100644
--- a/examples/workflow_steps/steps_from_apps_decorator.py
+++ b/examples/workflow_steps/steps_from_apps_decorator.py
@@ -9,7 +9,7 @@
################################################################################
# Steps from apps for legacy workflows are now deprecated. #
-# Use new custom steps: https://api.slack.com/automation/functions/custom-bolt #
+# Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/ #
################################################################################
logging.basicConfig(level=logging.DEBUG)
diff --git a/examples/workflow_steps/steps_from_apps_primitive.py b/examples/workflow_steps/steps_from_apps_primitive.py
index 6aa5a98bb..dd4231ba6 100644
--- a/examples/workflow_steps/steps_from_apps_primitive.py
+++ b/examples/workflow_steps/steps_from_apps_primitive.py
@@ -7,7 +7,7 @@
################################################################################
# Steps from apps for legacy workflows are now deprecated. #
-# Use new custom steps: https://api.slack.com/automation/functions/custom-bolt #
+# Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/ #
################################################################################
logging.basicConfig(level=logging.DEBUG)
diff --git a/pyproject.toml b/pyproject.toml
index 024ee6654..5a6523f35 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -24,7 +24,7 @@ dependencies = ["slack_sdk>=3.35.0,<4"]
[project.urls]
-Documentation = "https://slack.dev/bolt-python"
+Documentation = "https://docs.slack.dev/tools/bolt-python/"
[tool.setuptools.packages.find]
include = ["slack_bolt*"]
diff --git a/slack_bolt/__init__.py b/slack_bolt/__init__.py
index 32ab76721..6331925f8 100644
--- a/slack_bolt/__init__.py
+++ b/slack_bolt/__init__.py
@@ -1,7 +1,7 @@
"""
-A Python framework to build Slack apps in a flash with the latest platform features.Read the [getting started guide](https://slack.dev/bolt-python/tutorial/getting-started) and look at our [code examples](https://github.com/slackapi/bolt-python/tree/main/examples) to learn how to build apps using Bolt.
+A Python framework to build Slack apps in a flash with the latest platform features.Read the [getting started guide](https://docs.slack.dev/tools/bolt-python/building-an-app) and look at our [code examples](https://github.com/slackapi/bolt-python/tree/main/examples) to learn how to build apps using Bolt.
-* Website: https://slack.dev/bolt-python/
+* Website: https://docs.slack.dev/tools/bolt-python/
* GitHub repository: https://github.com/slackapi/bolt-python
* The class representing a Bolt app: `slack_bolt.app.app`
""" # noqa: E501
diff --git a/slack_bolt/app/app.py b/slack_bolt/app/app.py
index 60f20ea9e..5a7f32917 100644
--- a/slack_bolt/app/app.py
+++ b/slack_bolt/app/app.py
@@ -159,10 +159,10 @@ def message_hello(message, say):
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
- Refer to https://slack.dev/bolt-python/tutorial/getting-started for details.
+ Refer to https://docs.slack.dev/tools/bolt-python/building-an-app for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces,
- refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+ refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.
Args:
logger: The custom logger that can be used in this app.
@@ -671,7 +671,7 @@ def middleware_func(logger, body, next):
# Pass a function to this method
app.middleware(middleware_func)
- Refer to https://slack.dev/bolt-python/concepts#global-middleware for details.
+ Refer to https://docs.slack.dev/tools/bolt-python/concepts/global-middleware for details.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -717,7 +717,7 @@ def step(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new step from app listener.
@@ -735,7 +735,7 @@ def step(
# Pass Step to set up listeners
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -752,7 +752,7 @@ def step(
warnings.warn(
(
"Steps from apps for legacy workflows are now deprecated. "
- "Use new custom steps: https://api.slack.com/automation/functions/custom-bolt"
+ "Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/"
),
category=DeprecationWarning,
)
@@ -829,7 +829,7 @@ def ask_for_introduction(event, say):
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -867,7 +867,7 @@ def say_hello(message, say):
# Pass a function to this method
app.message(":wave:")(say_hello)
- Refer to https://api.slack.com/events/message for details of `message` events.
+ Refer to https://docs.slack.dev/reference/events/message/ for details of `message` events.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -978,7 +978,7 @@ def repeat_text(ack, say, command):
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1025,7 +1025,7 @@ def open_modal(ack, body, client):
# Pass a function to this method
app.shortcut("open_modal")(open_modal)
- Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+ Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1093,9 +1093,9 @@ def update_message(ack):
# Pass a function to this method
app.action("approve_button")(update_message)
- * Refer to https://api.slack.com/reference/interaction-payloads/block-actions for actions in `blocks`.
- * Refer to https://api.slack.com/legacy/message-buttons for actions in `attachments`.
- * Refer to https://api.slack.com/dialogs for actions in dialogs.
+ * Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for actions in `blocks`.
+ * Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for actions in `attachments`.
+ * Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for actions in dialogs.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1121,7 +1121,7 @@ def block_action(
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1138,7 +1138,7 @@ def attachment_action(
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `interactive_message` action listener.
- Refer to https://api.slack.com/legacy/message-buttons for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1154,7 +1154,7 @@ def dialog_submission(
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1170,7 +1170,7 @@ def dialog_cancellation(
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_cancellation` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1211,7 +1211,7 @@ def handle_submission(ack, body, client, view):
# Pass a function to this method
app.view("view_1")(handle_submission)
- Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1237,7 +1237,9 @@ def view_submission(
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for
+ details.
+ """
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1253,7 +1255,7 @@ def view_closed(
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `view_closed` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_closed for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1294,8 +1296,8 @@ def show_menu_options(ack):
Refer to the following documents for details:
- * https://api.slack.com/reference/block-kit/block-elements#external_select
- * https://api.slack.com/reference/block-kit/block-elements#external_multi_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#external_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#external_multi_select
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.args`'s API document.
@@ -1335,7 +1337,7 @@ def dialog_suggestion(
middleware: Optional[Sequence[Union[Callable, Middleware]]] = None,
) -> Callable[..., Optional[Callable[..., Optional[BoltResponse]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
diff --git a/slack_bolt/app/async_app.py b/slack_bolt/app/async_app.py
index 906359fcc..39f3c3c0e 100644
--- a/slack_bolt/app/async_app.py
+++ b/slack_bolt/app/async_app.py
@@ -165,10 +165,10 @@ async def message_hello(message, say): # async function
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
- Refer to https://slack.dev/bolt-python/concepts#async for details.
+ Refer to https://docs.slack.dev/tools/bolt-python/concepts/async for details.
If you would like to build an OAuth app for enabling the app to run with multiple workspaces,
- refer to https://slack.dev/bolt-python/concepts#authenticating-oauth to learn how to configure the app.
+ refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth to learn how to configure the app.
Args:
logger: The custom logger that can be used in this app.
@@ -738,7 +738,7 @@ def step(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new step from app listener.
@@ -756,7 +756,7 @@ def step(
# Pass Step to set up listeners
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details of steps from apps.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details of steps from apps.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
For further information about AsyncWorkflowStep specific function arguments
@@ -772,7 +772,7 @@ def step(
warnings.warn(
(
"Steps from apps for legacy workflows are now deprecated. "
- "Use new custom steps: https://api.slack.com/automation/functions/custom-bolt"
+ "Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/"
),
category=DeprecationWarning,
)
@@ -854,7 +854,7 @@ async def ask_for_introduction(event, say):
# Pass a function to this method
app.event("team_join")(ask_for_introduction)
- Refer to https://api.slack.com/apis/connections/events-api for details of Events API.
+ Refer to https://docs.slack.dev/apis/events-api/ for details of Events API.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -892,7 +892,7 @@ async def say_hello(message, say):
# Pass a function to this method
app.message(":wave:")(say_hello)
- Refer to https://api.slack.com/events/message for details of `message` events.
+ Refer to https://docs.slack.dev/reference/events/message/ for details of `message` events.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -1007,7 +1007,7 @@ async def repeat_text(ack, say, command):
# Pass a function to this method
app.command("/echo")(repeat_text)
- Refer to https://api.slack.com/interactivity/slash-commands for details of Slash Commands.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details of Slash Commands.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -1054,7 +1054,7 @@ async def open_modal(ack, body, client):
# Pass a function to this method
app.shortcut("open_modal")(open_modal)
- Refer to https://api.slack.com/interactivity/shortcuts for details about Shortcuts.
+ Refer to https://docs.slack.dev/interactivity/implementing-shortcuts/ for details about Shortcuts.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -1122,9 +1122,9 @@ async def update_message(ack):
# Pass a function to this method
app.action("approve_button")(update_message)
- * Refer to https://api.slack.com/reference/interaction-payloads/block-actions for actions in `blocks`.
- * Refer to https://api.slack.com/legacy/message-buttons for actions in `attachments`.
- * Refer to https://api.slack.com/dialogs for actions in dialogs.
+ * Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for actions in `blocks`.
+ * Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for actions in `attachments`.
+ * Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for actions in dialogs.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -1150,7 +1150,7 @@ def block_action(
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `block_actions` action listener.
- Refer to https://api.slack.com/reference/interaction-payloads/block-actions for details.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/ for details.
"""
def __call__(*args, **kwargs):
@@ -1167,7 +1167,7 @@ def attachment_action(
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `interactive_message` action listener.
- Refer to https://api.slack.com/legacy/message-buttons for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-messaging/legacy-message-buttons/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1183,7 +1183,7 @@ def dialog_submission(
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1199,7 +1199,7 @@ def dialog_cancellation(
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `dialog_submission` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1240,7 +1240,7 @@ async def handle_submission(ack, body, client, view):
# Pass a function to this method
app.view("view_1")(handle_submission)
- Refer to https://api.slack.com/reference/interaction-payloads/views for details of payloads.
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload for details of payloads.
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -1266,7 +1266,9 @@ def view_submission(
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `view_submission` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_submission for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_submission for
+ details.
+ """
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1282,7 +1284,7 @@ def view_closed(
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `view_closed` listener.
- Refer to https://api.slack.com/reference/interaction-payloads/views#view_closed for details."""
+ Refer to https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload/#view_closed for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
@@ -1323,8 +1325,8 @@ async def show_menu_options(ack):
Refer to the following documents for details:
- * https://api.slack.com/reference/block-kit/block-elements#external_select
- * https://api.slack.com/reference/block-kit/block-elements#external_multi_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#external_select
+ * https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#external_multi_select
To learn available arguments for middleware/listeners, see `slack_bolt.kwargs_injection.async_args`'s API document.
@@ -1364,7 +1366,7 @@ def dialog_suggestion(
middleware: Optional[Sequence[Union[Callable, AsyncMiddleware]]] = None,
) -> Callable[..., Optional[Callable[..., Awaitable[Optional[BoltResponse]]]]]:
"""Registers a new `dialog_suggestion` listener.
- Refer to https://api.slack.com/dialogs for details."""
+ Refer to https://docs.slack.dev/legacy/legacy-dialogs/ for details."""
def __call__(*args, **kwargs):
functions = self._to_listener_functions(kwargs) if kwargs else list(args)
diff --git a/slack_bolt/authorization/__init__.py b/slack_bolt/authorization/__init__.py
index a936a866b..4b80a93bb 100644
--- a/slack_bolt/authorization/__init__.py
+++ b/slack_bolt/authorization/__init__.py
@@ -1,7 +1,7 @@
"""Authorization is the process of determining which Slack credentials should be available
while processing an incoming Slack event.
-Refer to https://slack.dev/bolt-python/concepts#authorization for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/authorization for details.
"""
from .authorize_result import AuthorizeResult
diff --git a/slack_bolt/context/__init__.py b/slack_bolt/context/__init__.py
index fb3337c7a..865825601 100644
--- a/slack_bolt/context/__init__.py
+++ b/slack_bolt/context/__init__.py
@@ -2,7 +2,7 @@
Bolt automatically attaches information that is included in the incoming event,
like `user_id`, `team_id`, `channel_id`, and `enterprise_id`.
-Refer to https://slack.dev/bolt-python/concepts#context for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/context for details.
"""
# Don't add async module imports here
diff --git a/slack_bolt/lazy_listener/__init__.py b/slack_bolt/lazy_listener/__init__.py
index 4d9111cc3..a92c18483 100644
--- a/slack_bolt/lazy_listener/__init__.py
+++ b/slack_bolt/lazy_listener/__init__.py
@@ -19,7 +19,7 @@ def run_long_process(respond, body):
lazy=[run_long_process]
)
-Refer to https://slack.dev/bolt-python/concepts#lazy-listeners for more details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/lazy-listeners for more details.
"""
# Don't add async module imports here
diff --git a/slack_bolt/listener_matcher/builtins.py b/slack_bolt/listener_matcher/builtins.py
index 57dbdf4f1..76c12d452 100644
--- a/slack_bolt/listener_matcher/builtins.py
+++ b/slack_bolt/listener_matcher/builtins.py
@@ -294,7 +294,7 @@ def func(body: Dict[str, Any]) -> bool:
return dialog_submission(constraints["callback_id"], asyncio)
if action_type == "dialog_cancellation":
return dialog_cancellation(constraints["callback_id"], asyncio)
- # https://api.slack.com/workflows/steps
+ # https://docs.slack.dev/legacy/legacy-steps-from-apps/
if action_type == "workflow_step_edit":
return workflow_step_edit(constraints["callback_id"], asyncio)
diff --git a/slack_bolt/logger/messages.py b/slack_bolt/logger/messages.py
index d30f51acb..80e68d022 100644
--- a/slack_bolt/logger/messages.py
+++ b/slack_bolt/logger/messages.py
@@ -348,7 +348,7 @@ def info_default_oauth_settings_loaded() -> str:
"Bolt has enabled the file-based InstallationStore/OAuthStateStore for you. "
"Note that these file-based stores are for local development. "
"If you'd like to use a different data store, set the oauth_settings argument in the App constructor. "
- "Please refer to https://slack.dev/bolt-python/concepts#authenticating-oauth for more details."
+ "Please refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth for more details."
)
diff --git a/slack_bolt/middleware/request_verification/async_request_verification.py b/slack_bolt/middleware/request_verification/async_request_verification.py
index 68484bde0..3fb9e209b 100644
--- a/slack_bolt/middleware/request_verification/async_request_verification.py
+++ b/slack_bolt/middleware/request_verification/async_request_verification.py
@@ -10,7 +10,7 @@ class AsyncRequestVerification(RequestVerification, AsyncMiddleware):
"""Verifies an incoming request by checking the validity of
`x-slack-signature`, `x-slack-request-timestamp`, and its body data.
- Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+ Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
"""
async def async_process(
diff --git a/slack_bolt/middleware/request_verification/request_verification.py b/slack_bolt/middleware/request_verification/request_verification.py
index 5662dcf08..2cf7e361e 100644
--- a/slack_bolt/middleware/request_verification/request_verification.py
+++ b/slack_bolt/middleware/request_verification/request_verification.py
@@ -14,7 +14,7 @@ def __init__(self, signing_secret: str, base_logger: Optional[Logger] = None):
"""Verifies an incoming request by checking the validity of
`x-slack-signature`, `x-slack-request-timestamp`, and its body data.
- Refer to https://api.slack.com/authentication/verifying-requests-from-slack for details.
+ Refer to https://docs.slack.dev/authentication/verifying-requests-from-slack/ for details.
Args:
signing_secret: The signing secret
diff --git a/slack_bolt/middleware/ssl_check/ssl_check.py b/slack_bolt/middleware/ssl_check/ssl_check.py
index d608e5c3d..88c5105ef 100644
--- a/slack_bolt/middleware/ssl_check/ssl_check.py
+++ b/slack_bolt/middleware/ssl_check/ssl_check.py
@@ -17,11 +17,11 @@ def __init__(
base_logger: Optional[Logger] = None,
):
"""Handles `ssl_check` requests.
- Refer to https://api.slack.com/interactivity/slash-commands for details.
+ Refer to https://docs.slack.dev/interactivity/implementing-slash-commands/ for details.
Args:
verification_token: The verification token to check
- (optional as it's already deprecated - https://api.slack.com/authentication/verifying-requests-from-slack#verification_token_deprecation)
+ (optional as it's already deprecated - https://docs.slack.dev/authentication/verifying-requests-from-slack/#deprecation)
base_logger: The base logger
""" # noqa: E501
self.verification_token = verification_token
diff --git a/slack_bolt/middleware/url_verification/url_verification.py b/slack_bolt/middleware/url_verification/url_verification.py
index e59398fd7..7505c9c15 100644
--- a/slack_bolt/middleware/url_verification/url_verification.py
+++ b/slack_bolt/middleware/url_verification/url_verification.py
@@ -11,7 +11,7 @@ class UrlVerification(Middleware):
def __init__(self, base_logger: Optional[Logger] = None):
"""Handles url_verification requests.
- Refer to https://api.slack.com/events/url_verification for details.
+ Refer to https://docs.slack.dev/reference/events/url_verification/ for details.
Args:
base_logger: The base logger
diff --git a/slack_bolt/oauth/__init__.py b/slack_bolt/oauth/__init__.py
index c4f806698..0a5c3db07 100644
--- a/slack_bolt/oauth/__init__.py
+++ b/slack_bolt/oauth/__init__.py
@@ -1,6 +1,6 @@
"""Slack OAuth flow support for building an app that is installable in any workspaces.
-Refer to https://slack.dev/bolt-python/concepts#authenticating-oauth for details.
+Refer to https://docs.slack.dev/tools/bolt-python/concepts/authenticating-oauth for details.
"""
# Don't add async module imports here
diff --git a/slack_bolt/request/__init__.py b/slack_bolt/request/__init__.py
index ee8b435a7..8610b6019 100644
--- a/slack_bolt/request/__init__.py
+++ b/slack_bolt/request/__init__.py
@@ -1,6 +1,6 @@
"""Incoming request from Slack through either HTTP request or Socket Mode connection.
-Refer to https://api.slack.com/apis/connections for the two types of connections.
+Refer to https://docs.slack.dev/apis/events-api/ for the two types of connections.
This interface encapsulates the difference between the two.
"""
diff --git a/slack_bolt/response/__init__.py b/slack_bolt/response/__init__.py
index 373acccf2..c390b2d8e 100644
--- a/slack_bolt/response/__init__.py
+++ b/slack_bolt/response/__init__.py
@@ -3,7 +3,7 @@
In Socket Mode, the response data can be transformed to a WebSocket message. In the HTTP endpoint mode,
the response data becomes an HTTP response data.
-Refer to https://api.slack.com/apis/connections for the two types of connections.
+Refer to https://docs.slack.dev/apis/events-api/ for the two types of connections.
"""
from .response import BoltResponse
diff --git a/slack_bolt/workflows/__init__.py b/slack_bolt/workflows/__init__.py
index 97e6ec765..c0f6d96b7 100644
--- a/slack_bolt/workflows/__init__.py
+++ b/slack_bolt/workflows/__init__.py
@@ -6,5 +6,5 @@
* `slack_bolt.workflows.step.utilities`
* `slack_bolt.workflows.step.async_step` (if you use asyncio-based `AsyncApp`)
-Refer to https://api.slack.com/workflows/steps for details.
+Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
diff --git a/slack_bolt/workflows/step/async_step.py b/slack_bolt/workflows/step/async_step.py
index 250d2e900..7fa0ed858 100644
--- a/slack_bolt/workflows/step/async_step.py
+++ b/slack_bolt/workflows/step/async_step.py
@@ -29,7 +29,7 @@
class AsyncWorkflowStepBuilder:
"""Steps from apps
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
callback_id: Union[str, Pattern]
@@ -47,7 +47,7 @@ def __init__(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
This builder is supposed to be used as decorator.
@@ -89,7 +89,7 @@ def edit(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
@@ -142,7 +142,7 @@ def save(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
@@ -195,7 +195,7 @@ def execute(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
@@ -242,7 +242,7 @@ def build(self, base_logger: Optional[Logger] = None) -> "AsyncWorkflowStep":
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
@@ -340,7 +340,7 @@ def __init__(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Args:
callback_id: The callback_id for this step from app
@@ -386,7 +386,7 @@ def builder(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
"""
return AsyncWorkflowStepBuilder(callback_id, base_logger=base_logger)
diff --git a/slack_bolt/workflows/step/step.py b/slack_bolt/workflows/step/step.py
index 7cdbb913c..4fca25717 100644
--- a/slack_bolt/workflows/step/step.py
+++ b/slack_bolt/workflows/step/step.py
@@ -24,7 +24,7 @@
class WorkflowStepBuilder:
"""Steps from apps
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
callback_id: Union[str, Pattern]
@@ -42,7 +42,7 @@ def __init__(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
This builder is supposed to be used as decorator.
@@ -84,7 +84,7 @@ def edit(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new edit listener with details.
@@ -138,7 +138,7 @@ def save(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new save listener with details.
@@ -191,7 +191,7 @@ def execute(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Registers a new execute listener with details.
@@ -238,7 +238,7 @@ def build(self, base_logger: Optional[Logger] = None) -> "WorkflowStep":
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Constructs a WorkflowStep object. This method may raise an exception
if the builder doesn't have enough configurations to build the object.
@@ -351,7 +351,7 @@ def __init__(
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
Args:
callback_id: The callback_id for this step from app
@@ -393,7 +393,7 @@ def builder(cls, callback_id: Union[str, Pattern], base_logger: Optional[Logger]
"""
Deprecated:
Steps from apps for legacy workflows are now deprecated.
- Use new custom steps: https://api.slack.com/automation/functions/custom-bolt
+ Use new custom steps: https://docs.slack.dev/workflows/workflow-steps/
"""
return WorkflowStepBuilder(
callback_id,
diff --git a/slack_bolt/workflows/step/utilities/async_configure.py b/slack_bolt/workflows/step/utilities/async_configure.py
index 721d5049c..5b9a7f9ae 100644
--- a/slack_bolt/workflows/step/utilities/async_configure.py
+++ b/slack_bolt/workflows/step/utilities/async_configure.py
@@ -32,7 +32,7 @@ async def edit(ack, step, configure):
)
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
def __init__(self, *, callback_id: str, client: AsyncWebClient, body: dict):
diff --git a/slack_bolt/workflows/step/utilities/configure.py b/slack_bolt/workflows/step/utilities/configure.py
index d44c8d0da..1280be8f7 100644
--- a/slack_bolt/workflows/step/utilities/configure.py
+++ b/slack_bolt/workflows/step/utilities/configure.py
@@ -32,7 +32,7 @@ def edit(ack, step, configure):
)
app.step(ws)
- Refer to https://api.slack.com/workflows/steps for details.
+ Refer to https://docs.slack.dev/legacy/legacy-steps-from-apps/ for details.
"""
def __init__(self, *, callback_id: str, client: WebClient, body: dict):
diff --git a/tests/scenario_tests/test_attachment_actions.py b/tests/scenario_tests/test_attachment_actions.py
index fa40187ee..f40deb22b 100644
--- a/tests/scenario_tests/test_attachment_actions.py
+++ b/tests/scenario_tests/test_attachment_actions.py
@@ -164,7 +164,7 @@ def test_failure_2(self):
assert_auth_test_count(self, 1)
-# https://api.slack.com/legacy/interactive-messages
+# https://docs.slack.dev/legacy/legacy-messaging/legacy-making-messages-interactive/
body = {
"type": "interactive_message",
"actions": [
diff --git a/tests/scenario_tests_async/test_attachment_actions.py b/tests/scenario_tests_async/test_attachment_actions.py
index f6613837b..c9817dcd7 100644
--- a/tests/scenario_tests_async/test_attachment_actions.py
+++ b/tests/scenario_tests_async/test_attachment_actions.py
@@ -191,7 +191,7 @@ async def test_failure_2(self):
await assert_auth_test_count_async(self, 1)
-# https://api.slack.com/legacy/interactive-messages
+# https://docs.slack.dev/legacy/legacy-messaging/legacy-making-messages-interactive/
body = {
"type": "interactive_message",
"actions": [