mylinebot / app.py
wsy07's picture
Create app.py
b5ca2ee verified
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage
import os
# 建立 Flask 應用
app = Flask(__name__)
# 從 Huggingface 的 Secrets 中讀取 LINE 憑證
line_bot_api = LineBotApi(os.environ.get("LINE_CHANNEL_ACCESS_TOKEN"))
handler = WebhookHandler(os.environ.get("LINE_CHANNEL_SECRET"))
@app.route("/", methods=["POST"])
def callback():
# 接收 X-Line-Signature
signature = request.headers.get("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):
user_text = event.message.text
reply_text = f"你說的是:{user_text}"
line_bot_api.reply_message(event.reply_token, TextSendMessage(text=reply_text))
# 本地測試用(部署在 Huggingface 時不需要)
if __name__ == "__main__":
app.run()