Browse Source

clean code

cj 3 years ago
parent
commit
a1a786b725
2 changed files with 53 additions and 0 deletions
  1. 3 0
      config.ini
  2. 50 0
      main.py

+ 3 - 0
config.ini

@@ -0,0 +1,3 @@
+[line-bot]
+channel_access_token = 
+channel_secret = 

+ 50 - 0
main.py

@@ -0,0 +1,50 @@
+
+import uvicorn
+import fastapi
+from linebot import LineBotApi, WebhookHandler
+from linebot.models import ( 
+    MessageEvent, TextMessage, TextSendMessage, FollowEvent, 
+    )
+import configparser
+
+app = fastapi.FastAPI()
+
+# bot config
+config = configparser.ConfigParser()
+config.read('config.ini')
+
+line_bot_api = LineBotApi(config.get('line-bot', 'channel_access_token'))
+handler = WebhookHandler(config.get('line-bot', 'channel_secret'))
+
+# callback event
+@app.post("/callback")
+async def callback(request: fastapi.Request):
+    signature = request.headers['X-Line-Signature']
+    body = await request.body()
+    handler.handle(body.decode('utf-8'), signature)
+    return 'OK'
+
+# follow event
+@handler.add(FollowEvent)
+def handle_follow(event):
+    print(event.source.user_id)
+    line_bot_api.reply_message(
+        event.reply_token,
+        TextSendMessage(text='歡迎加入好友'))                                
+
+# # test answer, echo handler
+# @handler.add(MessageEvent, message=TextMessage)
+# def echo(event):
+#     if '誰' in event.message.text:
+#         line_bot_api.reply_message(
+#             event.reply_token,
+#             TextSendMessage(text='我是您的專屬祕書'))
+
+#     else:
+#         line_bot_api.reply_message(
+#             event.reply_token,
+#             TextSendMessage(text=event.message.text)
+#         )
+
+if __name__ == '__main__':
+    uvicorn.run("main:app", host="127.0.0.1", port=5000, reload=True)