了解最新公司动态及行业资讯
开发自定义机器人脚本
首先,在决定开发自定义脚本时,可以使用 npm 命令查看是否有类似的脚本可用。
$ npm search hubot-scripts github NAME DESCRIPTION hubot-deployer Giving Hubot the ability to deploy GitHub repos to PaaS providers hubot hubot-scripts hubot-gith hubot-gh-release-pr A hubot script to create GitHub's PR for release hubot-github Giving Hubot the ability to be a vital member of your github organization …
应用 NPM 包:
npm --save 首先将 -name 添加到 -.json
项目结构
默认需要导出一个:
module.exports = (robot) -> # your code here
首先我们创建我们的第一个脚本,你好。
module.exports = (robot) -> robot.respond /greet/i, (res) -> res.send 'hello world.'
重启,输入greet
myhubot> myhubot greet myhubot> hello world.
Hubot 语法 &
可以收听房间或群组中的任何消息。
只监听直接发给机器人的消息,即需要指定机器人名称或别名服务器运维,添加机器人名称为rob,别名为/,则如下格式会触发脚本:
- rob open the pod bay doors - ROB: open the pod bay doors - @ROB open the pod bay doors - /open the pod bay doors
发送和回复
res参数是实例服务器运维,如果你想从bot返回消息,你可以使用send或reply。
发送会将消息发送到整个聊天室或群组。
reply 将消息回复给特定的人。
更多信息请参考官网
更复杂的例子
Hubot是基于node.js开发的,所以它能做node.js能做的,比如:
示例:查看服务器端日历信息
/.
child_process = require('child_process') module.exports = (robot) -> robot.respond /(cal|日历)( me)?/i, (res) -> child_process.exec 'cal', (err, stdout, stderr) -> res.send(stdout)
重启,输入cal,可以看到控制台返回了服务器的日历信息
Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
捕获所有未处理的信息
为了让机器人的响应更加友好,您可以为无法识别的信息设置一个默认的返回信息。
/.
module.exports = (robot) -> robot.catchAll (res) -> res.send "主人,无法识别您的指令:#{res.message.text}"
融入微信
hubot 默认提供两种类型,shell 和 .
shell提供了命令行方式,开发调试或者运维还好,聊天就太差了。
聊天工具在国内听说过的人不多,不用也无所谓。
依托hubot灵活的扩展机制,社区提供各种聊天工具的集成。它可以在官方网站上找到。
不过在中国,最流行的聊天软件当然是微信了。把自己的聊天机器人绑定到自己的微信账号上,和它调情,是不是很有趣?
还好已经有人发了微信,地址:
接下来,我们将 Hub- 集成到我们的项目中。
npm install hubot-weixin --save
运行,设置名称为bot,别名/,这样只需要输入/cal就可以激活机器人。
binhubot.cmd -n bot -l / -a weixin
当然,这样运行命令会出现错误。hubot-work的主要机制是破解网页版微信协议。首先用手机登录微信账号,然后模拟网页版微信登录,这样就可以接收微信消息了。
可以设置如下:
1、先为机器人注册一个新的微信公众号或使用已有的微信公众号;
2、登录手机微信;
3、浏览器打开网页微信:,F12打开控制台监听请求信息;
4.手机扫一扫登录;
5.控制台要监听很多请求信息;
6、从这些请求信息中找到如下信息,填入.//hubot-/.yaml:
cookie: Uin: Sid: Skey: DeviceID:
现在,再次运行命令。如果有错误,请按照刚才的步骤检查参数设置是否正确,或者使用其他工具进行调试。
binhubot.cmd -n bot -l / -a weixin
正确启动后,您可以通过微信给机器人发送消息。
下一个
接下来,考虑做一些更有趣的事情。