-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
48 lines (36 loc) · 1.32 KB
/
main.py
File metadata and controls
48 lines (36 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os
import dotenv
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, SourceUser, TextMessage, TextSendMessage
from commands import news, omikuji, dice, hello, afk
dotenv.load_dotenv()
app = Flask(__name__)
YOUR_CHANNEL_ACCESS_TOKEN = os.environ.get('TOKEN')
YOUR_CHANNEL_SECRET = os.environ.get('CHANNEL_SECRETS')
line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_CHANNEL_SECRET)
commands = [hello.process, news.process, omikuji.process, dice.process, afk.process]
@app.route("/callback", methods=['POST'])
def callback():
signature = request.headers['X-Line-Signature']
body = request.get_data(as_text=True)
try:
handler.handle(body, signature)
except InvalidSignatureError:
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event: MessageEvent):
for c in commands:
check = c(event, line_bot_api)
if check:
return
if isinstance(event.source, SourceUser):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="「初めに」って送ってみてね!")
)
if __name__ == "__main__":
app.run(port=3003)