Created
January 4, 2019 00:37
-
-
Save dotmanila/9b9dc07420f3d33cd9cba9071f0b42e0 to your computer and use it in GitHub Desktop.
Simple HTTP server to accept Slack Event Subscriptions POST
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
from SimpleHTTPServer import SimpleHTTPRequestHandler | |
import BaseHTTPServer | |
import optparse | |
import time | |
import socket | |
import simplejson | |
# https://api.slack.com/events-api#events_api_request_urls | |
class slackhttp(BaseHTTPServer.BaseHTTPRequestHandler): | |
def do_OPTIONS(self): | |
self.do_POST() | |
def do_send_response(self, code, message): | |
try: | |
self.send_response(code) | |
self.send_header("Content-type", "text/plain") | |
self.end_headers() | |
self.wfile.write(message) | |
except socket.error as e: | |
pass | |
def do_POST(self): | |
print "in post method" | |
self.data_string = self.rfile.read(int(self.headers['Content-Length'])) | |
self.send_response(200) | |
self.end_headers() | |
data = simplejson.loads(self.data_string) | |
print(data) | |
self.do_send_response(200, data['challenge']) | |
if __name__ == '__main__': | |
server_class = BaseHTTPServer.HTTPServer | |
httpd = server_class(('',80), slackhttp) | |
httpd.serve_forever() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment