from slackeventsapi import SlackEventAdapter
from slack import WebClient
from slack.errors import SlackApiError
+from slack.signature import SignatureVerifier
import os
import requests
import re
slack_bot_token = os.environ['SLACK_BOT_TOKEN']
slack_events = SlackEventAdapter(slack_signing_secret, "/slack/events", app)
+signature_verifier = SignatureVerifier(slack_signing_secret)
slack_client = WebClient(slack_bot_token)
def rot_string(str, n=13):
in a direct message that it is not a member of. Otherwise, if the slash
command was issued in a channel, the bot will reply in that channel."""
+ data = request.get_data();
+ headers = request.headers;
response_url = request.form.get('response_url')
channel_name = request.form.get('channel_name')
channel = request.form.get('channel_id')
query = request.form.get('text')
+ if not signature_verifier.is_valid_request(data, headers):
+ return make_response("invalid request", 403)
+
match = re.match('^([0-9]+|\*) (.*)$', query)
if (match):
try: