notice

This is unreleased documentation for Rasa Open Source Documentation Master/Unreleased version.
For the latest released documentation, see the latest version (2.0.x).

Version: Master/Unreleased

rasa.core.channels.slack

SlackBot Objects

class SlackBot(OutputChannel)

A Slack communication channel

SlackInput Objects

class SlackInput(InputChannel)

Slack input channel implementation. Based on the HTTPInputChannel.

__init__

| __init__(slack_token: Text, slack_channel: Optional[Text] = None, proxy: Optional[Text] = None, slack_retry_reason_header: Optional[Text] = None, slack_retry_number_header: Optional[Text] = None, errors_ignore_retry: Optional[List[Text]] = None, use_threads: Optional[bool] = False) -> None

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 Token here <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 through
  • slack_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 listed here <https://api.slack.com/events-api#errors>_.
  • use_threads - If set to True, your bot will send responses in Slack as a threaded message. Responses will appear as a normal Slack message if set to False.

process_message

| async process_message(request: Request, on_new_message: Callable[[UserMessage], Awaitable[Any]], text, sender_id: Optional[Text], metadata: Optional[Dict]) -> Any

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

| get_metadata(request: Request) -> Dict[Text, Any]

Extracts the metadata from a slack API event (https://api.slack.com/types/event).

Arguments:

  • request - A Request 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.