Day 07 line bot sdk python范例程序在做什麽

知道了line bot sdk python上的程序的功能是回复你和你传送相同的讯息。这边会看成是在做什麽并在之後去修改程序成你要的功能。

分析范例程序

验证来源

这里在验证封包是否来源於LINE,在Webhook那篇有提到webhook沟通的条件

@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)
    app.logger.info("Request body: " + body)

    # handle webhook body
    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        print("Invalid signature. Please check your channel access token/channel secret.")
        abort(400)

    return 'OK'

@app.route("/callback", methods=['POST'])

在主网域下注册/callback网址

def callback():

建立一个回呼函式,函式内容如下

signature = request.headers['X-Line-Signature']

提取请求标头内的数位签章

body = request.get_data(as_text=True)

提取请求本体

app.logger.info("Request body: " + body)

将请求本体添加至log info纪录

try:
    handler.handle(body, signature)
except InvalidSignatureError:
    print("Invalid signature. Please check your channel access token/channel secret.")
    abort(400)

透过你的频道密钥计算并验证请求本体是否与数位签章一致,如果一致预设会回复状态代码200,否则回覆状态代码400

处理讯息

这段程序在bot server里处理接收的讯息跟回复的讯息

@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=event.message.text))

@handler.add(MessageEvent, message=TextMessage)

用来监听接收到的MessageEvent这个Webhook事件中类型为TextMessage的讯息

def handle_message(event):

建立一个处理讯息的函式,处理接收到的event

line_bot_api.reply_message(event.reply_token,TextSendMessage(text=event.message.text))

line_bot_api.reply_message():为回覆讯息的函式,前面的参数是reply_token,可以从Webhook事件中获得,後面的参数为要传送的讯息

Webhook事件物件

  • Message event : 讯息事件
  • Unsend event : 收回讯息事件
  • Follow event : 追随事件
  • Unfollow event : 封锁事件
  • Join event : 加入事件
  • Leave event : 离开事件
  • Member join event : 成员加入事件
  • Member leave event : 成员离开事件
  • Postback event : 回发事件
  • Video viewing complete event : 影片观看完成事件
  • Beacon event : Beacon事件
  • Account link event : 帐户连接事件
  • Device link event : 装置连接事件
  • Device unlink event : 装置断开连接事件
  • LINE Things scenario execution event : LINE Things场景执行事件

参考:
https://developers.line.biz/en/reference/messaging-api/#webhook-event-objects


<<:  基础统计-让我们来聊聊叙述统计

>>:  Day4 中秋节就是要烤肉阿-韩式烤五花肉

javascript变数与运算子2

接下来介绍各种运算子,也是用程序码跟注解做说明 以下是执行程序 ...

【在 iOS 开发路上的大小事-Day05】透过闭包 (Closure) 来传值

前情提要 一般我们在做传值动作的时候,会有好几种方式可以做,像是用 Segue、Closure、De...

从零开始学3D游戏设计:雷射陷阱光束

这是 Roblox 从零开始系列,效果章节的第六个单元,今天你将开始学习制作光束效果 Part.1 ...

让按钮来个酷动态!操纵DOM事件:JavaScript篇 (二)

上一篇整理了 JavaScript 操纵网页元件事件的基本流程: 指定网页元件,可用 getElem...

2022/1/2 更新

1.Grid_Optimizer: 原本使用4年资料回测,改成5年,00646改00662。 2.G...