import uvicorn import fastapi from linebot import LineBotApi, WebhookHandler from linebot.models import ( MessageEvent, TextMessage, TextSendMessage, FollowEvent, ) import mysql.connector app = fastapi.FastAPI() # bot config line_bot_api = LineBotApi("SJT7VPT4RMQFLcS27jQBy3FcC24gtDrkcwJWZ5Xzqesr5T78LOKudHEJzt0k3b2S7n4KPwf27J7DVz2c8NQ4plSaaQylEeB1cYrfejaE/RPG/lCIQBYe4iBTzo26s4i2PcmT89837per/lTyvhVIKAdB04t89/1O/w1cDnyilFU=") handler = WebhookHandler("411ae3ef7e766739ed2c2c27b249d010") # 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): # get user id when follow user_id = event.source.user_id # db connect conn = mysql.connector.connect( host="db.ptt.cx", port=3306, user="choozmo", password="pAssw0rd", database='arkcard') cursor = conn.cursor() search_id = """SELECT * FROM users WHERE id = %s""" add_id = 'INSERT INTO users (id) VALUES (%s)' cursor.execute(search_id, (user_id,)) values = cursor.fetchall() value = [user_id] print(values) for v in values: print("uaserid found") else: cursor.execute(add_id, value) conn.commit() conn.close() print("userid add") print("歡迎") print(event.source.user_id) line_bot_api.reply_message( event.reply_token, TextSendMessage(text='歡迎加入好友')) # message handler @handler.add(MessageEvent, message=TextMessage) def echo(event): if '我要發送' in event.message.text: line_bot_api.reply_message( event.reply_token, TextSendMessage(text="發送操作")) elif '我要接收' 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="更多的服務內容,歡迎請上我們的官網!") ) if __name__ == '__main__': uvicorn.run("main:app", host="0.0.0.0", port=8228, reload=True)