Thoughts, stories and ideas.

如何在一分钟内配置一个二维码机器人

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

在抽奖的时候能不能有个机器人帮助我们掷色子?

在选择困难的时候有一个机器人帮我决定中午吃啥?

我想把电脑上的一个页面用手机打开,能不能有个机器人帮我生成二维码?

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

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

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

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

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

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

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

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

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

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

第一句我们通过 json.parse(request.body).text 得到了 BearyChat 发来消息的正文。 第二句 string.sub(text, string.find(text,"%s.+$")) 通过正则表达式 ,获取了触发词之后的内容,也就是我们生成二维码的地址。 最后我们通过 "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 把图传给工程师。这个过程很费时间不说,偶尔还会弄错,现在有了这个二维码机器人,不止方便,地址也写在上边,大家可以即及时发现错误。听到这个成就感爆棚啊。

希望这篇攻略可以帮助到你,快去按照我们的步骤写一个二维码机器人吧~~

什么?RSS 机器人还能做这些事情?

虽然在短短几十年的互联网时代里 RSS 已经是一个相对古老的技术,但是它至今也仍在然起着很多不可替代的作用。利用RSS 我们可以避免耗费精力的主动查询,让网络世界更加自动化,而且相对于微信公众号等封闭的内容订阅平台,RSS 是完全开放的,生态圈更加丰富和多样。

倍洽(BearyChat)支持 RSS 机器人已经有三年了,使用它可以很方便的把一些好的内容来源,自动给自己或者给团队同事分享阅读。

然而利用 RSS 机器人,是不是只能获取有 RSS 支持的内容呢?其实答案是否定的,因为还有很多工具可以帮助你把想要的内容 RSS 化,让机器人可以识别,我们来看看下面几个场景:

我想跟踪社交媒体,看看对于自己的产品,用户们是怎么说的?

有一个叫 Queryfeed 的工具,可以支持把多种社交网站(Twitter Facebook Google+ Instagram 等)的内容转化为 RSS 源。

我们以 Twitter 举例,用它来生成关于游戏「纪念碑谷」的 RSS 源。

1.先用 Queryfeed,填入「纪念碑谷」生成 Twitter search 的 RSS 源。

  1. 把生成的 RSS 源,地址复制出来。

  2. 建立一个 RSS 机器人,在「订阅地址」里填入刚刚复制的 RSS 源地址。

  3. 设置完成,你立即会收到用户最近和 「纪念碑谷」有关的 Tweet。

怎么样是不是很容易?只需简单几步,就不会轻易错过用户的声音了,我们再看下一个应用场景。

  • 我的软件使用了一些关键的第三方库,我想及时知道他的更新要怎么办?

Libraries.io 是一个开源软件的索引服务,支持众多主流开源软件仓库。

我们这里要监控一下 hubot-bearychat (BearyChat 的 Hubot adapter)这个包在 NPM 上有没有新更新。

  1. 在 Libraries.io 里搜索 「hubot-bearychat」

  2. 进入详情页,在侧栏就可以看到 releases 的 RSS 源,如下图:

  1. 同样复制地址,建立机器人。

  2. 设置完成,你立即会收到最新的版本号推送。

通过这个机器人,我们就可以及时知道,我们使用的库是不是又修复了什么 BUG,有没有新功能可以用上。(GitHub Repo 也支持 releases 的 RSS 输出,也是另一种跟踪方式)

当然,上面的两个例子都是一个特定场景,社交网站和开源软件,那么......

  • 如果我想对任意的页面进行监控呢?

现实是没有那么美好,大部分的互联网页面是都不支持 RSS 输出的,但是这也不是没有办法,再介绍两个终极武器:将任意页面转为 RSS 源的工具 Feedity 和 Feed43。

我们以抓知乎的搜索结果为例子,把知乎「搜索 AlphaGo」的地址 https://www.zhihu.com/search?type=content&q=AlphaGo 复制到其中一个工具里。

其中 Feedity 支持你鼠标圈选你关心的内容,并可以把同一类内容(比如标题)一起选择抓取,从任意页面选择你所需要关心的内容,不过 Feedity 是收费服务,最基础的套餐是 9 美元一个月,如下图:

而 Feed43 使用起来难度比较大,需要你有一些 HTML 基础,自己去写规则来匹配出你想要的内容,把需要的内容通过一些语法筛选出来,但是优势是有免费的套餐。

这两个工具,都可以先试用,测试生成你想要的 RSS 源。这样绝大部分页面都可以通过各种各样的工具 RSS 化了。

好了,介绍的这些工具不知道对你有没有启发,如果有就动起手来,让 RSS 机器人发挥它最大的价值吧~

在倍洽中接收特定主题的邮件

Email 机器人是我们在前期集成的机器人之一,一直以来,在倍洽中接收邮件已经成为很多用户所依赖的方式。今天,我们将重新为大家梳理一下在倍洽中接收邮件、接收特定主题邮件的规则,希望我们的 Email 机器人可以给大家带来更多的便利。

Email 机器人具体的使用方式很简单,创建机器人后你会得到一个 xxxxxxxxxxx@mail.bearychat.com 的机器人邮箱。

只要给这个邮箱发邮件,机器人就会帮你把邮件摘要发送到指定的目标。

除了直接发邮件外,还有更多的使用方式,比如你想让大家都及时的收到任何会议记录的邮件,你可以把标题带有“会议记录”的邮件都发给机器人,这是怎么做到的呢?

下面是分别针对 Gmail 和 QQ 邮箱设置转发过滤器的操作指南,使用其他邮箱的用户如果设置出现问题可以反馈或发邮件联系我们 support@bearyinnovative.com。

Gmail 设置方式

1.进入自己邮箱的设置界面

2.邮箱添加转发邮件地址

将机器人的邮箱地址添加到转发列表里,为了安全起见,Gmail 设置了验证步骤,添加后会自动发一个验证链接给机器人,去消息界面点击即可。

3.设置转发规则

通过过滤器/规则,将邮件标题带有“会议记录”做为匹配条件,转发地址里填写/选择机器人的邮件地址。

4.设置成功

以后“会议记录”的邮件机器人都会帮你发到讨论组里啦,赶紧去试试吧。

QQ 邮箱设置方式

1.进入自己邮箱的设置界面

2.设置转发规则

通过过滤器/规则,将邮件标题带有“会议记录”做为匹配条件,转发地址里填写/选择机器人的邮件地址。

由于 QQ 邮箱设置了安全步骤,你这时会在倍洽 BearyChat 的消息界面里收到验证地址,点击之后过滤器设置就生效了。

3.设置成功

以后“会议记录”的邮件机器人都会帮你发到讨论组里啦,赶紧去试试吧。

BearyChat 团队如何用 Basecamp 整理日报,以及一个新的 Basecamp 机器人

熊小队一直希望能通过日报的形式,既能达到各自总结、规划的效果,又能在团队内使信息互通,让所有团队成员——无论研发、设计还是市场运营——都能够全局性的了解团队整体的工作进度,并据此合理安排,实现更高的合作效率。因此,日报的整理成为我们日常团队工作的一个实际需求。

我们在 BearyChat 工作团队中设置了一个「晨会汇报」讨论组,用以汇总每日的成员晨报,并方便日后进行回溯和检索。但对于日报的整理,熊小队的工作方式经历过四次迭代:

1.晨会发言时期

最早的日报整理工作是与晨会同时进行的。所有成员都将在每天早晨进行的简短站会中发言,由值日的同事负责记录所有人前一天所完成的工作和当前日的工作安排,并将汇总后的信息在晨会结束后发布到「晨会汇报」讨论组中。

问题跟随团队的扩张而来。随着团队成员的增加,每天晨会汇总晨报信息的时间成本骤升,因此我们对晨报的整理方式做出了第一次调整。

2.自行填写 Trello 日报卡时期

熊小队的各项工作进度安排都在 Trello 上完成,因此当时我们理所当然的选择了所有团队成员都较为熟悉的任务管理工具 Trello 作为日报汇总的载体。

我们在 Trello 中为团队新增了「晨会」看板并创建了周一到周五的五个列表,每个团队成员都拥有属于自己的一张卡片,按照规则,团队成员将在每天早晨自行修改自己卡片中的内容(勾选已完成的工作,新增当日计划的工作)并将卡片挪动到对应周期的列表当中。同时,Trello 机器人将自动把看板中的改动信息汇总到「晨会汇报」讨论组中。

3.Outgoing 自定义机器人整理时期

使用 Trello 机器人需要成员额外打开 Trello 并手动挪动卡片,一定程度上增加了成员的操作成本,基于此,我们进行了新一次的优化。

这一次我们选用 Outgoing 自定义机器人,通过命令行直接在 BearyChat 聊天窗口中完成日报的写入和汇总。操作步骤被大大的简化了,但不足也显而易见:总有人会忘记。

4.Basecamp 每日提醒时期

Basecamp 的每日提醒功能帮我们解决了「忘记」的问题。设定好的日报模板在每个工作日早晨 9 点自动通过邮件的方式提醒成员填写当日内容,点击链接即可完成填写。同样的,Basecamp 机器人会将日报汇总到「晨会汇报」讨论组中。

经过一段时间的实际运转,我们决定正式上线 Basecamp 机器人,希望不仅局限于日报的整理工作,在项目管理乃至协同编辑等更多领域,都能为大家增添一个不错的新选择。

Basecamp 可以称为项目管理工具的「鼻祖」之一,至今已有十余年历史。其前身 37signals 专注小而美,也做出过许多经典的「产品」:不仅是作为产品的 Basecamp、Highrise 等,还有著名的开发框架 Ruby On Rails 以及两本九分的书《Rework》、《Getting Real》。

15 年底 Basecamp 进行了一次大升级,除了原有任务管理,文档管理,讨论交流等功能外,更新增了私人对话、搜索、稍后工作、工作汇总报告等实用功能。你可以点击 这里 了解有关 Basecamp 的更多细节。

我们在本周上线了 Basecamp 机器人帮助用户自动接收来自项目的改动提醒,只需要将启用 Basecamp 机器人后自动生成的 Hook 地址配置到相应项目并勾选需要推送的时事件类型即可,具体的配置步骤可以查看启用 Basecamp 机器人后自动展开的机器人详解。

如果你有关于 Basecamp + BearyChat 的更多玩法,随时欢迎你和我们一起分享。新的一年,祝效率新高:)