npm 包 hubot-http-post-say 使用教程

阅读时长 5 分钟读完

简介

hubot-http-post-say 是 Hubot 的一个 npm 包, 目的是将 Hubot 的机器人消息作为 HTTP POST 请求发送到指定的 URL.

该 npm 包可以被用于处理一些非标准的聊天平台,例如,Kik,Viber等, 同时,也可以将 Hubot 机器人的消息发送到其它应用程序进行自定义开发.

安装

在终端中,运行以下命令安装此 package:

使用步骤

第一步: 基本设置

在 bot.coffee 文件中添加以下代码,引入 hubot-http-post-say:

然后使用获得的键/值对设置以下参数:

这个 http_post_say_url 是指请求将要被发送到哪个 URL,如果没有设置过程.env.HUBOT_HTTP_POST_SAY_URL,则操作会默认发送到 Slack 的 chat.postMessage API 上。

http_post_say_token 是你 Slack 的 API Token, 没有值时即为空.

http_post_say_channel 是消息将要发送到的频道,默认为 #general.

第二步:使用 http_post_say 发送消息

通过调用 http_post_say 函数,可以向指定的 URL 发送一个 Hubot 机器人的消息。

其中:

  • robot: Hubot 实例
  • message: 带有文本和 meta 数据的 Hubot 机器人消息对象.
  • done: 回调函数,用于处理发送请求后的结果.

以下是一个示例代码:

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

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

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

在这个代码示例中,当 Hubot 接收到 "my message" 消息后,它将使用 http_post_say 函数将 "Hello #{email}, Hubot is here." 这条信息发送给指定的 URL.

如果发送请求返回的 status code 没有异常,那么该函数的回调函数将会返回 “Message sent. HTTP response code: #{result.statusCode}" 的信息,代表消息发送成功。

深度阐述

Hubot 是一个由 Github 开发的可扩展 chat bot,它可以被用于处理一些非标准的聊天平台,同时,也可以将 Hubot 机器人的消息发送到其它应用程序进行自定义开发。hubot-http-post-say 插件就是一个用于将 Hubot 机器人的消息请求通过 HTTP POST 请求发送到指定 URL 地址的插件。

http_post_say 函数的主要实现体现在如下代码中:

这段代码使用 robot.http 创建一个新的 HTTP 请求,并使用 headers 指定请求体的类型. 再将请求体按照 specified body 发送给目标 URL.

在请求体提交的时候,会将 Hubot 机器人的消息文本以及 meta 数据序列化成一个 JSON 对象,并指定请求体类型为 application/json 类型。

这些参数可以在你的环境设置中进行配置,如何替换成你的 API token 和其他的参数.

结论

hubot-http-post-say 这个 npm 包是 Hubot 的一种扩展机制,它可以帮助我们将 Hubot 的消息转换成 HTTP POST 请求,并发送给指定的 URL.

此 npm 包可以应用于处理一些比较非标准的聊天平台,如 Kik, Viber 等,并且能够将 Hubot 机器人的消息发送到其他应用程序进行自定义开发.

如果你正在寻找一种简单易用、方便实用的方式将 Hubot 机器人的消息发送到特定的 URL, hubot-http-post-say 将成为你的好帮手.

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

纠错
反馈