看了LINE提供的程序档很久,我发现我根本看不懂因此我借用了MASO老师的程序码为模板开始我的改造历程
Maso老师的YT: Maso的万事屋 - YouTube
老师的档案一开始下载有这些
资料夹的部分不重要
我们首先先看到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
今天要来处理储存密码的安全问题。 话是这麽说,但要明白即使我们将密码加密储存了,但在使用过程中依旧会...
本篇大纲:绘制气泡图的关键、资料下载、范例图表的画面与互动效果、绘制图表 今天的一天一图表,我们要...
隐私如浮云,多半用户即刻享受当下服务的快感解决需求,至於隐私就都化为浮云飘过视而无见,如同Day 2...
今天我们要来为我们用 Template Driven Forms 所撰写的登入系统写单元测试,如果...
在上一篇新认识了 Class 物件里面会写一个 local (元件内)的 state 去管理储存元件...