1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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)
|