我的第一个云端机器人:Hubot
「扭腰日报」今天招募了一位新员工:hubot!它是一位 24 小时都在运行的机器人,而且是「免费」的!在工作之前的组,我们也有这样一位 bot 生活在 Slack 的频道里,每当需要 deployment 的时候,直接 @ 一下它就好,或者网站出了什么问题,bot 也会立即发送消息到指定的 Slack 频道里。
这次亲自动手配置属于自己的 bot 完全是因为看到湾区日报的第一个 “员工”:Slack/Hubot·的文章,通过 bot 不仅可以大大节省时间,而且增强了移动性,很多事情都可以直接在手机上通过 slack 来控制。
开始第一步
前提:一台装有 npm 和 node.js 的电脑。
下载 Hubot
用 terminal 打开到指定文件夹的目录,使用以下命令全局安装 hubot:1
npm install -g yo generator-hubot
然后使用以下命令新建一个 hubot:1
yo hubot --adapter=slack
这时候 terminal 会让你输入 bot 的属性,比如名字描述之类的,输入安装完成后,一个 hubot 就出生在你的本地电脑里。
配置 Slack
进入 Slack 的 App Directory 的页面,选择 Bots 或者 Hubot 都行,生成之后会产生一个 API Token,这样 Slack 的配置算是完成了,同时你也可以修改 bot 的名字和头像。
配置脚本
开始第一个「Hello World」脚本。进入 scripts 的文件夹,新建一个 hello-world.coffee
的script,然后将以下代码复制进去。
1 | module.exports = (robot) -> |
运行与部署
运行 Hubot
本地运行很简单,直接运行以下的命令行,就可以本地运行了,将 xoxb-YOUR-TOKEN-HERE
替换成你自己的 API Token。1
HUBOT_SLACK_TOKEN=xoxb-YOUR-TOKEN-HERE ./bin/hubot --adapter slack
想必你的 Slack 已经有了一个 bot,你可以直接在它的对话栏里输入 hello
, 它就会回复 World!
。同时你可以把它加入指定的频道 Channel,@它以后在加上命令也会得到相应的回复,比如@bot hello
。
部署到 Heroku 云端运行
第一步完成了,需要将 hubot 部署到云端,文档中提供了好几个方案,这里选择 Heroku 作为平台,可以作为免费云部署。
- 在 terminal 中使用
heroku login
进入 heroku,然后创建一个新的 app,使用以下命令:heroku create
。 - 将 Slack 的 API Token 加入 configure,使用以下命令:
heroku config:set HUBOT_SLACK_TOKEN=xoxb-YOUR-TOKEN-HERE
。 - 将代码上传到 Heroku 的服务器,使用以下命令:
git push heroku master
。
这样你的 hubot 就进入云上了,生活在了 Heroku 的服务器上了。
24/7 工作
因为 Heroku 的免费 app 有自动睡眠的设置,这里是关于 Free Dyno Hours 的介绍:Free Dyno Hours
这就导致 Hubot 不能 24 小时一直都在运行,所以我们需要间隔一段时间去唤醒这个 app。Kaffeine 就是一个让 Heroku app 持续唤醒的网站,把你 app 的网址输入进去,Kaffeine 就会让它一直处于运行状态了。
Heroku 命令行
heroku ps -a your-app-name
: 查询使用时间heroku logs -a your-app-name
: 查询 app 的日志
参考
本文完