简介
bot-messenger-utils 是一个 npm 包,旨在提供 Facebook Messenger Bot 管理的工具集。它包含了常用的 Bot 管理 API,例如:发送文字、图片、视频、按钮等消息,获取用户资料等等。此外,它还提供了一些实用函数,例如:将图片 URL 转成 Base64 编码、格式化数据等等。
安装
使用 npm 安装 bot-messenger-utils,只需执行以下命令即可:
npm install bot-messenger-utils --save
使用
安装完成后,我们需要将其引用到我们的代码中,例如:
const BotUtils = require('bot-messenger-utils');
BotUtils 是 bot-messenger-utils 的主要命名空间,我们可以通过它来调用其提供的函数和 API。
下面我们给出 bot-messenger-utils 的使用示例,我们编写一个简单的程序来向用户发送欢迎消息、文字消息和图片消息。
-- -------------------- ---- ------- ----- -------- - ------------------------------- ----- ------------ - -------------------- ----- ------- - --------------- ----- -------- - ----------------------------------------------------------------------------------- -- ---- ----- -------------- - - ---------- - --- ------------ -- -------- - ----- ------- ------ -- -- -- ---- ----- ----------- - - ---------- - --- ------------ -- -------- - ----- --------- -- -- -- ---- ----- -------- - -------------------------------- ----- ------------ - - ---------- - --- ------------ -- -------- - ----------- - ----- -------- -------- - -------------- ---------------------------------------- -- -- -- -- -- ------ -------- -------------------- - ------------------------------ ------- -------- ------------------ ---------------------- - -- ------ ---------------------------- -- -- -- ------- ------------- -- - ------------------------- -- ------ -- -- -- ------- ------------- -- - ----------------------------------- ------------ -- - ------------------------------- -------------------- -- - ----------------------------------------------------- - ------------- -------------------------- -- ---------------------- -- ---------------------- -- ------
在这个例子中我们使用了 BotUtils 的 3 个函数,分别是:
generateAttachmentID(url: string): string
:根据图片 URL 生成一个唯一的图片 ID。getBase64FromURL(url: string): Promise<string>
:将图片 URL 转成 Base64 编码。uploadAttachment(data: string): Promise<string>
:上传图片到 Facebook 并返回一个图片 ID。
下面我们来分别介绍一下这三个函数的功能和实现。
generateAttachmentID
这个函数的作用是根据一个图片 URL 生成一个唯一的图片 ID,我们可以通过这个 ID 来标识这个图片并在之后的消息发送中使用。
这个函数的实现非常简单,只需要使用 Node.js 内置的 crypto 模块即可:
function generateAttachmentID(url) { const hash = crypto.createHash('md5').update(url).digest('hex'); return `IMAGE_${hash.toUpperCase()}`; }
getBase64FromURL
这个函数的作用是将一个图片 URL 转成 Base64 编码,并返回一个 Promise 对象。这个函数的实现有一些复杂,我们需要调用 request 模块来获取图片的二进制数据,再将这个数据转成 Base64 编码。
-- -------------------- ---- ------- -------- --------------------- - ------ --- ----------------- ------- -- - ---------------- - --------- ---- -- ------- --------- ----- -- - -- ------- -- ------------------- --- ---- - ----- ---- - ------------------------------------- -------------- - ---- - ------------ -- ------ - --- --- -
uploadAttachment
这个函数的作用是将一个 Base64 编码的图片上传到 Facebook,并返回一个图片 ID。
这个函数的实现比较复杂,我们需要使用另外一个 npm 包 request-promise-native 来发送图文消息 API 请求。具体的流程如下:
- 首先我们构建一个 Form Data 对象,将图片的 Base64 编码添加到里面。
- 然后我们使用 request-promise-native 发送一个 POST 请求到 Facebook 的 API,将图片的 Base64 编码上传到 Facebook 并返回一个 attachment_id。
- 最后我们将这个 attachment_id 返回给调用方。
下面是 uploadAttachment 的实现代码:
-- -------------------- ---- ------- -------- ---------------------- - ----- -------- - - -------- ---------------- ----------- - ----- -------- -------- - ------------ ----- -- -- --- --------- - ------ ----------------- ---------- -------- - --------- ------------ ------------ ------------ -- -- -- ----- ------- - - ---- --------------------------------------------------------- --------- ----- ----- -------- - --------------- ---------------------- -------------- ------- ----------------- -- -- ------ ---------------- ------------ -- -------------------- -
结论
bot-messenger-utils 是一个非常实用的工具包,它大大简化了开发 Facebook Messenger Bot 的难度。在本文中我们介绍了 bot-messenger-utils 的使用方法和原理,并介绍了它提供的三个主要函数的实现细节,希望可以帮助大家更加深入地了解 Facebook Messenger Bot 的开发流程。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005664b81e8991b448e26b7