npm 包 bot-messenger-utils 使用教程

阅读时长 8 分钟读完

简介

bot-messenger-utils 是一个 npm 包,旨在提供 Facebook Messenger Bot 管理的工具集。它包含了常用的 Bot 管理 API,例如:发送文字、图片、视频、按钮等消息,获取用户资料等等。此外,它还提供了一些实用函数,例如:将图片 URL 转成 Base64 编码、格式化数据等等。

安装

使用 npm 安装 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 模块即可:

getBase64FromURL

这个函数的作用是将一个图片 URL 转成 Base64 编码,并返回一个 Promise 对象。这个函数的实现有一些复杂,我们需要调用 request 模块来获取图片的二进制数据,再将这个数据转成 Base64 编码。

-- -------------------- ---- -------
-------- --------------------- -
  ------ --- ----------------- ------- -- -
    ---------------- - --------- ---- -- ------- --------- ----- -- -
      -- ------- -- ------------------- --- ---- -
        ----- ---- - -------------------------------------
        --------------
      - ---- -
        ------------ -- ------
      -
    ---
  ---
-

uploadAttachment

这个函数的作用是将一个 Base64 编码的图片上传到 Facebook,并返回一个图片 ID。

这个函数的实现比较复杂,我们需要使用另外一个 npm 包 request-promise-native 来发送图文消息 API 请求。具体的流程如下:

  1. 首先我们构建一个 Form Data 对象,将图片的 Base64 编码添加到里面。
  2. 然后我们使用 request-promise-native 发送一个 POST 请求到 Facebook 的 API,将图片的 Base64 编码上传到 Facebook 并返回一个 attachment_id。
  3. 最后我们将这个 attachment_id 返回给调用方。

下面是 uploadAttachment 的实现代码:

-- -------------------- ---- -------
-------- ---------------------- -
  ----- -------- - -
    -------- ----------------
      ----------- -
        ----- --------
        -------- -
          ------------ -----
        --
      --
    ---
    --------- -
      ------ ----------------- ----------
      -------- -
        --------- ------------
        ------------ ------------
      --
    --
  --

  ----- ------- - -
    ---- ---------------------------------------------------------
    ---------
    ----- -----
    -------- -
      --------------- ----------------------
      -------------- ------- -----------------
    --
  --

  ------ ----------------
    ------------ -- --------------------
-

结论

bot-messenger-utils 是一个非常实用的工具包,它大大简化了开发 Facebook Messenger Bot 的难度。在本文中我们介绍了 bot-messenger-utils 的使用方法和原理,并介绍了它提供的三个主要函数的实现细节,希望可以帮助大家更加深入地了解 Facebook Messenger Bot 的开发流程。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005664b81e8991b448e26b7

纠错
反馈