用 Python 畅玩 Line bot - 04:TextMessage

现在我们可以来运行前面从官方找到的範例程式,来看看 Line bot 在传送讯息的时候会有甚么样的资讯传来了。

@handler.add(MessageEvent, message=TextMessage) 这行是会在 Line bot 触发讯息事件,并且讯息的种类是文字的时候,去执行后续的程式码
例如我们在后面加上个函式并让它输出接收到的资讯。

def handle_message(event):    print(event)

可以发现能从 enevt 中获得几个重要的资讯,例如:
讯息的内容:event.message.text
讯息的属性:event.message.type
回传用的 token:event.replyToken
传送者的身分:event.source.type
传送者在该 Line bot 的 ID:event.source.userId

{
"message":
{
"id": "14881017983375",
"text": "this is a test message",
"type": "text"
},
"mode": "active",
"replyToken": "817eb9e1741647909366b599c3e37ba6",
"source":
{
"type": "user",
"userId": "Ub8c776653b3d290b3c3f9d1b9c852cb9"
},
"timestamp": 1633706879515,
"type": "message"
}

在得知这些资讯之后,我们可以透过作些判断操作,去进行指定的回应,也可以直接将收到的讯息回传,製作一个 Echo bot,我们这边就先从 Echo bot 来体验看看回传讯息给使用者。
从前面的範例程式中,可以看到 line_bot_api 中有个 reply_message,这个就是在 line bot api 中用来被动回传讯息给发送者的函式。
该函式的用法如下:

line_bot_api.reply_message(欲回传者的 token, 回传的讯息)

回传者 token 可以从前面接收到的 event 中取得,而回传的讯息依据想要回传的资料型态不同,又有分成不同的函式需要呼叫,这边我们暂时只会用到回传文字讯息,因此会用到的是TextSendMessage(text=要回传的文字)

而 echo bot 会回传的内容等于发送者所传送的内容,此部分一样可以从前面接收到的 event 中取得,因此可以写成这样。

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

这时候再去重新运行 app.py,尝试传送讯息给 line bot 后,就会看到如下图的结果。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章