Thoughts, stories and ideas.

新手指南,在倍洽团队中添加机器人或自定义机器人

「机器人」一直是倍洽主打的特色功能之一,在倍洽中,机器人承担着信息自动化的任务,帮助使用者实现各种外部工具消息的打入或打出,实现人与人,人与工具,工具与工具之间信息的打通。

如果用更直接一些的表述,则可以将倍洽中所说的机器人理解为一段段封装好的程序代码,这些程序在后台默默运作,将指定的动作实现为一条条内容消息,并在倍洽聊天窗口中按照规定的样式表述出来。

标准化机器人

在倍洽团队管理面板中,进入「添加机器人」界面,我们可以看到多个分类下各式各样的及机器人插件,如 GitHub 机器人、百科机器人、Trello 机器人等等,除三个自定义机器人外,所有机器人插件都可以理解为标准化机器人插件——即由倍洽团队完成了后台程序逻辑的实现,使用者只需要在前台配置时,按照各自的需求,直接选用(有部分机器人支持多种功能选择)即可。

例如,Email 机器人就属于可以快速选用的机器人。添加 Email 机器人后,将自动生成的机器人邮箱地址添加到对应邮箱的转发地址中,即可使用这个 Email 机器人,在倍洽中查收发给相应邮箱的邮件了。

Trello 等机器人,则属于支持多种功能选择的情况。添加 Trello 机器人后,可以自行勾选该 Trello 中的哪些事件需要推送到相应讨论组。未被勾选的事件,则不会作为消息在倍洽讨论组中进行提醒。

上述两种机器人的差别,仅在于是否支持进一步筛选提醒事件,本质上都是由倍洽团队提供的标准化插件,能够大致覆盖常见的使用需求。如果在使用倍洽机器人的过程中,发现仍有未被满足的个性化需求,则可以考虑尝试自定义机器人的使用。

自定义机器人

目前,倍洽提供以下三种自定义机器人:

1.Incoming

可以将 Incoming 机器人简单的理解为一个单向的机器人,它最主要的工作,是按照程序设定的条件,将外部工具中产生的新消息,同步到倍洽指定讨论组中。

如:定时将当前 AQI 空气指数同步到倍洽等。

2.Outgoing

Outgoing 则可以有来有往。通过设置触发关键词,Outgoing 机器人可以帮助使用者将消息发送到指定外部服务,还可以将外部服务的响应结果返回到触发当前动作的讨论组。

例如,可以通过 Outgoing 机器人调用百科服务,在倍洽讨论组中发起对某个词语的查询,由 Outgoing 机器人将百科返回的结果发布到讨论组中等。

值得一提的是,Outgoing 机器人无需指定讨论组,只要使用正确的触发词,就可以在倍洽团队的任意聊天窗口中调用相应的 Outgoing 机器人。

3.Hubot

Hubot 机器人的功能则更为丰富一些。Hubot 是 GitHub 开源的一款机器人框架,提供很多聊天机器人所需的基础设施,并且,Hubot 已经发展出了较好的生态圈,有很多开源插件可以借用。选用 Hubot 机器人,也可以实现 Incoming 或 Outgoing 机器人的功能。

以上三种自定义机器人并无实际上的功能高下之分,在具体的需求场景下,建议大家根据实际情况,灵活的进行选择。

配置自定义机器人

通常来说,配置一个自定义机器人可以笼统的归纳为以下两步:

1.选择一个合适的自定义机器人框架并完成添加

在前文中,我们已经简单介绍了目前倍洽所提供的三种机器人框架。在实际的需求场景下,大家可以根据需求的复杂程度,开发量的大小等,评估选择最为适合的机器人。

仅仅就「添加」而言,这个操作十分简单,在「添加机器人」界面中选中,并点击「添加」即可。但此时,向团队中添加一个自定义机器人的「万里长征」其实只完成了第一步。

无论添加的是 Incoming、Outgoing 还是 Hubot 机器人,「添加」之后,「保存配置」之前(如配置教程太长,可点击「收起」),我们都能在「配置信息」一栏中看到两个重要内容(对单向机器人 Incoming 而言,则只有一个):

1.1 Hubot Token/Token/Webhook

这串内容是这个机器人的唯一身份标识,用以判定打入或打出的内容是否应由该机器人承载。可以先把这串内容复制下来,在下一步程序的撰写和部署中将会使用到它。

1.2 Hubot URL/Post 地址

此处应填写由该机器人执行的程序部署生效后指定的接口地址,机器人会与这个地址通信,执行对应的任务。

不过如选用的是 Hubot 机器人,则可能会遇到一个特殊情况:Hubot 分为 rtm 模式和 http 模式,如果 hubot 运⾏在 http 模式下,给 hubot 发送的消息会以 POST 的形式发送到该 URL 下,而如果运⾏在 rtm 模式下的话,就不需要填写这个信息了。

例如,在选用 http 模式 Huobt 机器人的前提下,倍洽的运营团队撰写了一段根据关键词自动爬取某网站相关内容的程序,并将这段程序代码部署到了自有的云服务器上,与此同时,在这段程序中已规定接口的地址为 xx.xx.xxx.xx,将这个访问地址填入某个 Hubot 机器人的 Hubot URL 处后,这个 Hubot 机器人将自动执行按关键词爬取某网站内容的任务。

2.撰写符合需求的程序并完成部署

程序代码的撰写通常也可分为两种情形:

2.1 该程序已由他人实现,并开源在 GitHub 等网站上

这种情况实际上省去了自行撰写程序代码的工作。只需将相应代码复制下来,并将其中的 Hubot Token/Token/Webhook 信息修改为实际的信息即可(如还有其他需要修改的自定义参数,也可以按照需求一并进行修改)。

2.2 自行撰写程序代码

如需完全自行实现某些功能,则需要一定的编程技能。并且,希望通过这个机器人连接的工具提供开发接口,是该机器人实现的必要条件。

在机器人配置页面的「配置教程」一栏中,已提供了对应机器人程序的撰写案例,并对格式和字段等都进行了详细的说明,按照教程进行撰写即可。

实现什么功能、如何实现功能,则是「自定义」最好的注脚 :)

无论选用哪一种程序撰写方式,在程序代码完成后,都需要进行部署才能投入实际使用。如已有常用的部署方式,则一切照旧即可。也可以考虑尝试 webscriptheroku 等轻量部署工具,将编写好的程序放置到云服务中。

这一步完成后,将会得到一个实际可用的访问地址,将其填入上文所说的「Hubot URL/Post 地址」框中,并保存该机器人配置,就可以回到倍洽团队交流页面,测试该机器人的使用了。

comments powered by Disqus