notice
This is documentation for Rasa & Rasa Pro Documentation v2.x, which is no longer actively maintained.
For up-to-date documentation, see the latest version (3.x).
rasa.core.channels.slack
SlackBot Objects
A Slack communication channel
SlackInput Objects
Slack input channel implementation. Based on the HTTPInputChannel.
__init__
Create a Slack input channel.
Needs a couple of settings to properly authenticate and validate messages. Details to setup:
https://github.com/slackapi/python-slackclient
Arguments:
slack_token
- Your Slack Authentication token. You can create a Slack app and get your Bot User OAuth Access Tokenhere <https://api.slack.com/slack-apps>
_.slack_channel
- the string identifier for a channel to which the bot posts, or channel name (e.g. '#bot-test') If not set, messages will be sent back to the "App" DM channel of your bot's name.proxy
- A Proxy Server to route your traffic throughslack_retry_reason_header
- Slack HTTP header name indicating reason that slack send retry request.slack_retry_number_header
- Slack HTTP header name indicating the attempt number.errors_ignore_retry
- Any error codes given by Slack included in this list will be ignored. Error codes are listedhere <https://api.slack.com/events-api#errors>
_.use_threads
- If set toTrue
, your bot will send responses in Slack as a threaded message. Responses will appear as a normal Slack message if set toFalse
.slack_signing_secret
- Slack creates a unique string for your app and shares it with you. This allows us to verify requests from Slack with confidence by verifying signatures using your signing secret.conversation_granularity
- conversation granularity for slack conversations. sender allows 1 conversation per user (across channels) channel allows 1 conversation per user per channel thread allows 1 conversation per user per thread
process_message
Slack retries to post messages up to 3 times based on failure conditions defined here: https://api.slack.com/events-api#failure_conditions
get_metadata
Extracts the metadata from a slack API event.
Slack Documentation: https://api.slack.com/types/event
Arguments:
request
- ARequest
object that contains a slack API event in the body.
Returns:
Metadata extracted from the sent event payload. This includes the output channel for the response, and users that have installed the bot.
is_request_from_slack_authentic
Validate a request from Slack for its authenticity.
Checks if the signature matches the one we expect from Slack. Ensures we don't process request from a third-party disguising as slack.
Arguments:
request
- incoming request to be checked
Returns:
True
if the request came from Slack.