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
- 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.