hubot + slack 结合
在上一篇文章中介绍过 hubot 以及其如何安装,如何使用默认方式运行。这篇文章将介绍与 slack 结合使用,slack 是一个第三方托管的开发聊天室系统,类似于github的模式,真是看上去非常强大,不过我本人之前也没有太多接触这个东西,可以自行搜索了解。在之前已经介绍过,现在已经有人实现了针对 slack 的 hubot 适配器(Adapter) ,因此可以使其组合使用 ,下面将介绍具体步骤,
1. 在 slack 平台创建一个 hubot 应用,获取到 HUBOT_SLACK_TOKEN 。
创建地址 https://my.slack.com/services/new/hubot ,。我给它取了个名字叫dog ,接着按步骤填写对应内容,然后在页面上方将会看到这样的内容,每次创建将会生成不同的token,后面记得使用自己创建生成的token
HUBOT_SLACK_TOKEN=xoxb-185970387363-NsQgiTldDbpqWyATrbx6VYMr
2. 重新启动 slack 版本的 hubot
[liuweifeng@vm-10-154-250-5 myhubot3]$ env HUBOT_SLACK_TOKEN=xoxb-185970387363-NsQgiTldDbpqWyATrbx6VYMr ./bin/hubot --adapter slack [Sun May 21 2017 16:06:20 GMT+0800 (CST)] ERROR Cannot load adapter slack - Error: Cannot find module 'hubot-slack' [liuweifeng@vm-10-154-250-5 myhubot3]$ [liuweifeng@vm-10-154-250-5 myhubot3]$
这是在之前选择默认Adapter的目录 myhubot3 中启动结果,提示没有找到 slack 模块。我们重新造一个 slack 版本的 hubot 吧,看来不能偷懒
[liuweifeng@vm-10-154-250-5 myhubot3]$ [liuweifeng@vm-10-154-250-5 myhubot3]$ cd ../ [liuweifeng@vm-10-154-250-5 ~]$ mkdir myhubot4 [liuweifeng@vm-10-154-250-5 ~]$ cd myhubot4/ [liuweifeng@vm-10-154-250-5 myhubot4]$ yo hubot
在 Bot adapter 出现时,输入: slack ,然后耐心等待初始化
env HUBOT_SLACK_TOKEN=xoxb-185970387363-NsQgiTldDbpqWyATrbx6VYMr ./bin/hubot --adapter slack
这时候启动应该就不会有问题了,为了这个机器人能够在后台长时间运行,我们稍微修改下这个命令
env HUBOT_SLACK_TOKEN=xoxb-185970387363-NsQgiTldDbpqWyATrbx6VYMr ./bin/hubot --adapter slack >> /tmp/myhubot4.log 2>&1 &
这样如果有错误日志,将会记录在 /tmp/myhubot4.log 文件中,到此 slack 版本的 hubot将启动完毕。
3. 开始对话
打开 slack 聊天对话框,搜索在第一步创建的 cat,然后点击 "Message",进入与 cat 聊天界面
如果第二步的hubot 启动成功,这个时候 cat 左边的圆圈应该为 绿色,代表在线。然后我在下面的输入框输入 ping , cat 自动回复 PONG。这里可以介入任意合法的命令与 cat 对话,如果命令正确 cat 将会自动回复,如果不正确,cat 将没有任何提示。
4. 进行群聊
在上图左侧可以看到 CHANNLES ,这个功能,我理解就是群聊,类似于QQ群的一个功能,选择一个,然后邀请 cat 进入群聊。然后我输入了 @cat animate me ,这时cat将返回我一大段内容,animate me 是一个合法口令,具体啥意思,可以试试。这就是神奇的 @ 功能,这个感动到我了,,,
参考内容:
hubot-slack:适配 Slack 的 Hubot 机器人程序
用slack和hubot搭建你自己的运维机器人