前言
对于前端开发者而言,使用 npm 是很常见的事情。npm 提供了一系列的包,这些包便于开发者快速构建各种应用。其中 express-messenger 包是一个非常实用的工具,它可以帮助我们快速搭建基于 Facebook Messenger 的聊天机器人。本文将介绍如何使用 express-messenger 包快速搭建 Messenger 机器人。
安装
安装 express-messenger 包很简单,只需要使用以下命令:
npm install express-messenger --save
快速开始
- 在 Facebook for Developers 网站上创建一个新的应用。
- 在该应用的设置中打开 Messenger 并创建一个新的页面会话。
- 将应用设置中的应用 ID 和应用密钥复制保存。
- 在你的代码中使用以下代码:
-- -------------------- ---- ------- ----- --- - --------------------- ----- --------- - ----------------------------- --------------------- ----------- ------------ ------------------------- ---------------- ----------------------------- ---- ---------------- -- -- - ---------------- --------- -- ---- -------- ---
其中 verifyToken 和 pageAccessToken 需要替换为你自己创建的应用的相应 Token。
详细介绍
实现自己的逻辑
使用 express-messenger 包可以处理 Messenger 机器人的基本逻辑,我们可以通过实现一个具体的逻辑来达到自己的目的。例如,通过以下代码实现从用户那里接收到消息并自动回复:
-- -------------------- ---- ------- ----- --- - --------------------- ----- --------- - ----------------------------- --------------------- ----------- ------------ ------------------------- ---------------- ----------------------------- ---- ---------------------- ----- ---- -- - ----- ------- - ------------------------------- -- --------------------- -- ---------------- -- --------------------- - ------------------------------ - ----- -------------------- --- - -------------------- --- ---------------- -- -- - ---------------- --------- -- ---- -------- --- -------- ------------------------ -------- - --------- ---- ----------------------------------------------- --- - ------------- ----------------------------- -- ------- ------- ----- - ---------- - --- ----------- -- -------- -------- - -- ------- --------- ----- -- - -- ------- -- ------------------- -- ---- - ----- ----------- - ------------------ ----- --------- - ---------------- ------------------------- ---- ------- -- --------- --------------- ------- --- --------------- - ---- - --------------------- -- ---- ------- -- ---------- ------ ----------- - --- -
在上面的代码中,我们监听了 POST 请求,并从请求中获取到用户发送的消息。如果消息是文字类型,则将该消息发回给用户,实现了机器人自动回复的功能。
进阶功能
express-messenger 包提供了多种进阶功能:
接收图片
通过监听消息类型为 image 的消息,即可接收从用户发送的图片:
// 接收并回复图片 if (message.message && message.message.attachments && message.message.attachments[0].type === 'image') { sendMessage(message.sender.id, { attachment: message.message.attachments[0] }); }
留言站
可以通过监听消息类型为 postback 的事件,实现留言站的功能。
const message = req.body.entry[0].messaging[0]; if (message.postback && message.postback.payload === 'start') { sendMessage(message.sender.id, { text: `Hi there! How can I help you?` }); }
在上面的代码中,如果接收到的消息类型为 postback,且 payload 为 start,则机器人会向用户发起问候,并提示用户可以回复一些常规问题。
快速回复
通过使用快速回复功能,可以在用户聊天时快速回复一些常见问题。只需要在调用 sendMessage 函数的时候传入 quick_reply 参数即可。
-- -------------------- ---- ------- -------- ------------------------ -------- - --------- ---- ----------------------------------------------- --- - ------------- ----------------------------- -- ------- ------- ----- - ---------- - --- ----------- -- -------- -------- -------------- - - ------------- ------- ------ ---- --- ------ -------- ----- -- - ------------- ------- ------ ----- --- --- ----- -------- ------ -- - - -- ------- --------- ----- -- - -- ------- -- ------------------- -- ---- - ----- ----------- - ------------------ ----- --------- - ---------------- ------------------------- ---- ------- -- --------- --------------- ------- --- --------------- - ---- - --------------------- -- ---- ------- -- ---------- ------ ----------- - --- -
在上面的代码中,我们在发送 message 的同时,传入了快速回复的配置。当用户点击快速回复时,会在发送给我们的消息上添加 payload 字段,我们可以通过该字段确定用户点击了哪个回复。
结语
在本文中,我们介绍了如何使用 express-messenger 包快速构建一个功能强大的 Messenger 机器人。我们展示了如何监听从用户处接收到的消息,并根据不同的类型进行相应的处理。希望这篇文章能够对各位前端开发者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e981e8991b448e096c