Skip to content

Instantly share code, notes, and snippets.

@dotmanila
Created January 4, 2019 00:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dotmanila/9b9dc07420f3d33cd9cba9071f0b42e0 to your computer and use it in GitHub Desktop.
Save dotmanila/9b9dc07420f3d33cd9cba9071f0b42e0 to your computer and use it in GitHub Desktop.
Simple HTTP server to accept Slack Event Subscriptions POST
#!/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