Skip to content

Commit 0c0ce60

Browse files
committed
Add an example for #62
1 parent e33a267 commit 0c0ce60

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# ------------------
2+
# Only for running this script here
3+
import logging
4+
import sys
5+
from os.path import dirname
6+
7+
sys.path.insert(1, f"{dirname(__file__)}/../..")
8+
logging.basicConfig(level=logging.DEBUG)
9+
# ------------------
10+
11+
from slackeventsapi import SlackEventAdapter
12+
from slack import WebClient
13+
import os
14+
15+
slack_signing_secret = os.environ["SLACK_SIGNING_SECRET"]
16+
slack_events_adapter = SlackEventAdapter(slack_signing_secret, "/slack/events")
17+
18+
# pip install proxy.py
19+
# proxy --port 9000 --log-level d
20+
proxy_info = "http://localhost:9000"
21+
slack_bot_token = os.environ["SLACK_BOT_TOKEN"]
22+
slack_client = WebClient(token=slack_bot_token, proxy=proxy_info)
23+
24+
@slack_events_adapter.on("message")
25+
def handle_message(event_data):
26+
message = event_data["event"]
27+
if message.get("subtype") is None and "hi" in message.get('text'):
28+
channel = message["channel"]
29+
message = "Hello <@%s>! :tada:" % message["user"]
30+
slack_client.chat_postMessage(channel=channel, text=message)
31+
32+
33+
@slack_events_adapter.on("reaction_added")
34+
def reaction_added(event_data):
35+
event = event_data["event"]
36+
emoji = event["reaction"]
37+
channel = event["item"]["channel"]
38+
text = ":%s:" % emoji
39+
slack_client.chat_postMessage(channel=channel, text=text)
40+
41+
@slack_events_adapter.on("error")
42+
def error_handler(err):
43+
print("ERROR: " + str(err))
44+
45+
if __name__ == '__main__':
46+
slack_events_adapter.start(port=3000)
47+
48+
# -------------------------------
49+
50+
# (Terminal A)
51+
# source env/bin/activate
52+
# (env) $ export SLACK_BOT_TOKEN=xoxb-***
53+
# (env) $ export SLACK_SIGNING_SECRET=**
54+
# (env) $ FLASK_ENV=development python example/working_with_proxy/example.py
55+
56+
# (Terminal B)
57+
# source env/bin/activate
58+
# (env) $ proxy --port 9000 --log-level d
59+
60+
# (Terminal C)
61+
# ngrok http 3000
62+
63+
# in Slack
64+
# /invite @{your app's bot user}
65+
# post a message "hi" in the channel
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
slackclient>=2.7.1
2+
slackeventsapi>=2.1.0
3+
flask>=1
4+
proxy.py>=2.1.2

0 commit comments

Comments
 (0)