Thoughts, stories and ideas.

真的一分钟就可以完成一个二维码机器人?

我们团队在使用自己产品的时候,经常会有冒出一些很多小想法,比如:

  1. 在抽奖的时候能不能有个机器人帮助我们掷色子?
  2. 在选择困难的时候有一个机器人帮我决定中午吃啥?
  3. 我想把电脑上的一个页面用手机打开,能不能有个机器人帮我生成二维码?

相信你曾有过的小想法也会有很多,这些想法靠不靠谱先不要紧,先看看能不能快速实现出来~

这篇博客我介绍一个「如何建立一个二维码机器人」的完整示例,完成之后,在 BearyChat 发一个 $qr 某网址 的消息,你就可以获得一个对应的二维码图片。

我们需要利用到两个东西: Outgoing 机器人和 Webscript 脚本服务。

所谓 Outgoging 机器人 就是在 BearyChat 里,把所有以某触发词的开头的普通消息,发送到外部的某个指定服务的机器人。它更厉害的地方在于:可以把处理后的结果再转化成消息,发回给 BearyChat ,让你的机器人可以「一问一答」。

先去你团队所在 BearyChat 管理面板添加一个 Outgoing 机器人。

在手动模式这里我们我们填入了「触发词」 $qr ,由于 「POST 地址」暂时还没有,我们先不关闭这个页面,留着一会儿填写。

再介绍一个叫 Webscript 的服务,它的作用就是能在线编辑并且部署你的小脚本到一个 URL,快速完成一个简单的 API。

你需要先注册一下帐号,然后就可以创建自己的脚本了, 创建的时候你需要填写访问脚本对应的 URL。

在 Webscript 上编写脚本使用的是 Lua,虽然你可能并不熟悉 Lua 这门语言,但其实这里的使用是极为简单的。Webscript 自己也提供了不错的 技术文档 让你快速上手。

在这个脚本只做了很少的事情:

  1. 第一句我们通过 json.parse(request.body).text 得到了 BearyChat 发来消息的正文。
  2. 第二句 string.sub(text, string.find(text,"%s.+$")) 通过正则表达式 ,获取了触发词之后的内容,也就是我们生成二维码的地址。
  3. 最后我们通过 "https://api.qrserver.com/v1/create-qr-code/?size=200x200&data="..URL 得到一张动态的二维码码图片地址,返回给 attachments 里的 images 字段(这些都是 Outgoing 机器人消息标准的数据格式)。这里我们也要感谢 goqr.me 提供的动态二维码服务。

点击保存,这个小 API 就已经完成,可以被外部访问了,ps 需要复制请去看 完整代码 (实际代码可能会有更新)

最后我们再回到 BearyChat 的管理面板,把刚创建脚本的 URL 填入到 Outgoing 机器人的 「POST 地址」,保存。

这样我们的二维码机器人就完成了,可以在任何地方使用 $qr 某网址 来触发它: 当然如果你是第一次走这个流程,会多需要一些时间,但之后再次做类似的机器人一定就熟能生巧,以 1 分钟以内为目标吧~

还有一个小插曲,当时设计同学看到了我使用这个机器人,告诉我说这可帮了他大忙:平时他要提供设计素材的时候,都是先去搜索引擎,找一个在线二维码生成工具,下载图片,最后回到 BearyChat 把图传给工程师。这个过程很费时间不说,偶尔还会弄错,现在有了这个二维码机器人,不止方便,地址也写在上边,大家可以即及时发现错误。听到这个成就感爆棚啊。

最后预告,我们之后还会介绍更强大的 Hubot 机器人,敬请期待。

comments powered by Disqus