A Slack communication channel
Slack input channel implementation. Based on the HTTPInputChannel.
Create a Slack input channel.
Needs a couple of settings to properly authenticate and validate messages. Details to setup:
slack_token- Your Slack Authentication token. You can create a Slack app and get your Bot User OAuth Access Token
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
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
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
Slack retries to post messages up to 3 times based on failure conditions defined here: https://api.slack.com/events-api#failure_conditions
Extracts the metadata from a slack API event.
Slack Documentation: https://api.slack.com/types/event
Requestobject that contains a slack API event in the body.
Metadata extracted from the sent event payload. This includes the output channel for the response, and users that have installed the bot.
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.
request- incoming request to be checked
True if the request came from Slack.