简介
hubot-http-post-say 是 Hubot 的一个 npm 包, 目的是将 Hubot 的机器人消息作为 HTTP POST 请求发送到指定的 URL.
该 npm 包可以被用于处理一些非标准的聊天平台,例如,Kik,Viber等, 同时,也可以将 Hubot 机器人的消息发送到其它应用程序进行自定义开发.
安装
在终端中,运行以下命令安装此 package:
npm install hubot-http-post-say --save
使用步骤
第一步: 基本设置
在 bot.coffee 文件中添加以下代码,引入 hubot-http-post-say:
http_post_say = require "hubot-http-post-say"
然后使用获得的键/值对设置以下参数:
http_post_say_url = process.env.HUBOT_HTTP_POST_SAY_URL || "https://slack.com/api/chat.postMessage" http_post_say_token = process.env.HUBOT_HTTP_POST_SAY_TOKEN || "" http_post_say_channel = process.env.HUBOT_HTTP_POST_SAY_CHANNEL || "#general"
这个 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 机器人的消息。
http_post_say robot, message, done
其中:
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(url) .headers('Content-Type': 'application/json') .post(body) (err, res, body) => done err, res
这段代码使用 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