[DAY9]观察运行程序

看了LINE提供的程序档很久,我发现我根本看不懂因此我借用了MASO老师的程序码为模板开始我的改造历程
Maso老师的YT: Maso的万事屋 - YouTube
老师的档案一开始下载有这些
https://ithelp.ithome.com.tw/upload/images/20210924/20140159zBF1QhYOVN.png
资料夹的部分不重要
我们首先先看到app.py

from flask import Flask, request, abort
from linebot import (LineBotApi, WebhookHandler)
from linebot.exceptions import (InvalidSignatureError)
from linebot.models import *
#======这里是呼叫的档案内容=====
from message import *
from new import *
from Function import *
from mongodb_function import *
#======这里是呼叫的档案内容=====
#======python的函数库==========
import  os
#======python的函数库==========
app = Flask(__name__)
static_tmp_path = os.path.join(os.path.dirname(__file__), 'static', 'tmp')
line_bot_api = LineBotApi('你的Channel AcessToken')
handler = WebhookHandler('你的Channel Secret')

此区块是呼叫我们在执行程序时会用到的程序和设定我们网页、LINEBOT的值

#监听所有来自 /callback 的 Post Request
@app.route("/callback", methods=['POST'])
def callback():
    # get X-Line-Signature header value
    signature = request.headers['X-Line-Signature']
    #get request body as text
    **body** = request.get_data(as_text=True)
    write_one_data(eval(body))
    app.logger.info("Request body: " + body)
    #handle webhook body
    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        abort(400)
    return 'OK'

此区块是我们用於监视系统执行情况的程序码可於其中加上print(body)能够在LOG看到更详细的情况

#处理讯息
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    msg = event.message.text
    if '最新合作厂商' in msg:
        message = imagemap_message()
    elif '最新活动讯息' in msg:
        message = buttons_message()
    elif '注册会员' in msg:
        message = Confirm_Template()
    elif '旋转木马' in msg:
        message = Carousel_Template()
    elif '图片画廊' in msg:
        message = test()
    elif '功能列表' in msg:
        message = function_list()
    print(body)
    line_bot_api.reply_message(event.reply_token, message)

此处为我们回讯息的地方,我们利用副程序取的我们所需要的值後将其转化成讯息传出,副程序方面接下来这几天我会说到。

@handler.add(PostbackEvent)#显示程序运作过程在LOG中
def handle_message(event):
    print(event.postback.data)
@handler.add(MemberJoinedEvent)#入群欢迎词
def welcome(event):
    uid = event.joined.members[0].user_id
    gid = event.source.group_id
    profile = line_bot_api.get_group_member_profile(gid, uid)
    name = profile.display_name
    message = TextSendMessage(text=f'{name}欢迎加入')
    line_bot_api.reply_message(event.reply_token, message)
if __name__ == "__main__":
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

最下面的If...是我们的主程序因为Python的一些问题所以不是我们常见的main他负责开头及回传Http值给Line。


<<:  33岁转职者的前端笔记-DAY 24 jQuery DOM 节点

>>:  Day9 用python写UI-聊聊Message & Messagebox

Day29 - 使用Keystore加密密码

今天要来处理储存密码的安全问题。 话是这麽说,但要明白即使我们将密码加密储存了,但在使用过程中依旧会...

Day28-D3 进阶图表:气泡图

本篇大纲:绘制气泡图的关键、资料下载、范例图表的画面与互动效果、绘制图表 今天的一天一图表,我们要...

Day 11 已故用户的隐私设计

隐私如浮云,多半用户即刻享受当下服务的快感解决需求,至於隐私就都化为浮云飘过视而无见,如同Day 2...

Angular 深入浅出三十天:表单与测试 Day06 - 单元测试实作 - 登入系统 by Template Driven Forms

今天我们要来为我们用 Template Driven Forms 所撰写的登入系统写单元测试,如果...

State 和生命周期(下) 正确的使用 State (Day6)

在上一篇新认识了 Class 物件里面会写一个 local (元件内)的 state 去管理储存元件...