File size: 1,810 Bytes
55b1be9
cca3a00
55b1be9
2cf7795
 
 
76eaf5a
 
 
 
 
 
 
 
 
55b1be9
 
 
 
 
d476587
55b1be9
 
 
 
a4c60e7
0613521
9a45992
2cf7795
 
55b1be9
6482098
55b1be9
2cf7795
6482098
fea1ad8
0ef5a09
7fd59e2
 
 
3a2e91a
7fd59e2
d031eed
7fd59e2
3a2e91a
7fd59e2
 
4a7f8d2
2cf7795
4a7f8d2
3a2e91a
4a7f8d2
2cf7795
4a7f8d2
 
 
 
 
3a2e91a
4a7f8d2
 
0ea605e
4a7f8d2
 
 
 
55b1be9
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from fastapi.middleware.cors import CORSMiddleware
from fastapi import FastAPI, Request,  Header

import json
import os

from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage, ImageSendMessage, AudioMessage
)

app = FastAPI()
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=False,
    allow_methods=["*"],
    allow_headers=["*"],
)

line_bot_api = LineBotApi("ZwnEWwK46AUmRDOFXJOwUh1TqAELahP+kxHY0iBevF8JiEUe0CBQpkW2Gpo3C38LOaIX7hpW4IuTOSOjVof+DX9XgZg8MTeh5Iz+NDLlw6KKMtqNsyR6zt9CMnsso21ieifC/S8dcgXx3iKlhdS7UAdB04t89/1O/w1cDnyilFU=")
line_handler = WebhookHandler("7b9984bbc5c62445a79b95b15e34b727")

working_status = os.getenv("DEFALUT_TALKING", default = "true").lower() == "true"

@app.get("/")
def root():
     return {"title": "Echo Bot"}

@app.post("/webhook")
async def webhook(request: Request):
    signature = request.headers["X-Line-Signature"]

    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + body)
    try:
        print(body, signature)
        line_handler.handle(body, signature)
        
    except InvalidSignatureError:
        abort(400)

    return 'OK'

@line_handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    global working_status

    if event.message.text == "再見":
        working_status = True
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text="Bye!"))
        return

    if working_status:
        out = event.message.text
        if not out:
            out = "不懂您的意思!"
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text=out))