12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import copy
- import fastapi
- import fastapi.staticfiles as fastapiStaticfiles
- import linebot
- import linebot.models as linebotModels
- #uvicorn main:app --port 443 --ssl-keyfile=/etc/letsencrypt/live/ptt.cx/key.pem --ssl-certfile=/etc/letsencrypt/live/ptt.cx/cert.pem
- app = fastapi.FastAPI()
- app.mount(
- '/static', fastapiStaticfiles.StaticFiles(directory='static'), name='static')
- from linebot import (
- LineBotApi, WebhookHandler
- )
- from linebot.exceptions import (
- InvalidSignatureError
- )
- from linebot.models import (
- MessageEvent, TextMessage,ImageSendMessage, TextSendMessage,FlexSendMessage, TemplateSendMessage,CarouselTemplate,ConfirmTemplate,PostbackAction,MessageAction,CarouselColumn,URIAction
- )
- import json
- import codecs
- line_bot_api = LineBotApi('FvP2AkKj3FSuTjY8Jhwn23DPIb38yDZBliLrDjRA8j+UOQPku+kH2Bz2coDFl4gruRAiLuHuBbtRpILXlN54zJ+bWF5IwU86FClG47VZxCcDcAkhwqCqjYi/Ju7dBzlg963d9CV1KiiBwoiqvV6J7AdB04t89/1O/w1cDnyilFU=')
- handler = WebhookHandler('58a73d69c3ad6416e0b465e64c30526a')
- #line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
- #handler = WebhookHandler('YOUR_CHANNEL_SECRET')
- @app.post('/callback')
- async def callback(request: fastapi.Request):
- signature = request.headers['X-Line-Signature']
- body = await request.body()
- bot.handle(body.decode('utf-8'), signature)
- return 'OK'
- @handler.add(linebotModels.MessageEvent, message=linebotModels.TextMessage)
- def message_text(event):
- if event.message.text == '叫':
- lineBotApi.reply_message(
- event.reply_token, linebotModels.AudioSendMessage(
- original_content_url=f'{baseUrl}/static/audio/noot_noot.mp3', duration=1000))
- #if __name__ == "__main__":
- # app.run(host='0.0.0.0', port=443,ssl_context=('/etc/letsencrypt/live/ptt.cx/fullchain.pem', '/etc/letsencrypt/live/ptt.cx/privkey.pem'))
- # app.run(host='0.0.0.0', port=14404,ssl_context=('/tmp/cert.pem','/tmp/chain.pem' ))
|