rasa.core.channels.slack
SlackBot Objects
A Slack communication channel.
send_text_message
Send text message to Slack API.
send_attachment
Sends message with attachment.
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 tohere <https://api.slack.com/slack-apps>0, your bot will send responses in Slack as a threaded message. Responses will appear as a normal Slack message if set tohere <https://api.slack.com/slack-apps>1.here <https://api.slack.com/slack-apps>2 - 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.here <https://api.slack.com/slack-apps>3 - 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- ARequestobject 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.
