npm 包 brobbot-slack 使用教程

阅读时长 4 分钟读完

介绍

Brobbot 是一个用于构建有趣的只是机器人的框架,可以轻松地将它部署到 Slack、HipChat、IRC 等不同的聊天平台中。Brobbot 的设计使得它对于自定义开发非常友好,可以自定义各种插件来满足你的需求。在此篇文章中,我们将会学习如何使用 Brobbot 插件之一的 brobbot-slack。

什么是 brobbot-slack

brobbot-slack 是一个 Brobbot 的插件,可以轻松地将 Brobbot 集成到 Slack 上。它为你提供一些非常有用的功能,如:

  • 与 Slack 的实时消息交互
  • 读取和发送文件
  • 自定义命令

使用 brobbot-slack 插件,可以在 Slack 内创建各种有趣的指令,如:

  • /weather [城市名]:获取某个城市的天气情况
  • /stock [股票代码]:获取某个股票的实时行情
  • /joke:获取一个笑话

Brobbot-slack 插件能够帮助你节省大量的时间,你可以专注于你自己的代码而不必去处理 Slack 的集成细节。

安装

安装 Brobbot 和 brobbot-slack 插件,可以使用 npm 安装命令:

使用

在你的代码中首先引入 brobbot 和 brobbot-slack:

然后你就可以创建一个 Brobbot 实例,并且将其装载到 brobbot-slack 插件中:

最后启动 Brobbot 实例:

使用示例

在下面的例子中,我们将 Brobbot 插件与 slack 进行连接,然后通过一个简单的命令来回复所有在 Slack 中提到的人:

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

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

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

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

在上面的示例中,我们使用了一个正则表达式匹配 '@' 符号后面的文本,提取出了提到的人的用户名,然后回应他们。如果 Slack 中提到的是 'brobbot',则会返回 "hello!"。

代码还可以扩展得更加有趣。例如,我们可以使用 wolfram-alpha 模块为所有关于数学的问题提供答案:

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

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

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

在上面的示例中,我们监听一个匹配 '+' 符号的正则表达式,从匹配到的文本中提取出两个数字,并将它们传入到 Wolfram Alpha 客户端中进行查询。在查询返回后,我们从结果中提取出答案并将其使用 res.reply() 发送回到 Slack。

Brobbot-slack 插件还可以让你处理其他的事件,例如接收到新的消息、用户加入群组、用户离开群组等等:

结论

总之,Brobbot 和 brobbot-slack 插件是一个非常有用的工具,它可以让你在 Slack、HipChat、IRC 等聊天平台中构建自己的自定义命令,从而将你的工作流程自动化。希望这篇文章能为初学者提供一些指导,让他们能够轻松地开始使用 Brobbot 和 brobbot-slack 插件。

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