chatops之落入俗套的“你好,世界”

之前两个小文儿跟大家探讨了what -- chatops是怎样一回子事和why -- chatops所带来的一系列益处,接下来我们就说说how -- 如何从零开始搭建一个chatops机器人。

chatops之落入俗套的“你好,世界”_第1张图片
top 3 open source chatbot framework

上图是top3的三个opensource的chatbot framework,其中HU-BOT是GitHub最早开源的一个chatbot project,基于coffee script+nodejs编写。LITA借鉴了hubot的大部分功能并有一些创新,基于Ruby编写。Err是基于python编写的。

下面我们就开始做一个简单的chatops实践,首先要选择一个团队的IM工具,这里我们选择用slack. 其次选一个chatbot framework, 由于我个人对ruby的偏爱,所以我们选择LITA.

因为我一般选择在我自己的mac上编码,所以我选择手工安装,mac一般都自带的ruby 2.0,所以只需安装redis(LITA通过redis做持久化)和LITA就可以了。

1.开发环境搭建

a. 安装LITA, 文档在这里https://docs.lita.io/getting-started/installation/

b. 安装redis看这里 https://redis.io/download

手动安装LITA键入sudo gem install lita,然后用lita help来验证是否安装成功,如果得到如下结果就说明成功了。

chatops之落入俗套的“你好,世界”_第2张图片
install lita

2. 创建每一个Lita实例

lita new helloword 创建最一个lita实例

chatops之落入俗套的“你好,世界”_第3张图片
first instance

3. 第一个handler

进到helloworld那个目录下,创建一个文件,这个例子中我们把他命名成hello.rb, 如下

chatops之落入俗套的“你好,世界”_第4张图片
hello.rb

解释一下这个handler, “route(/^sayhi/, :hello)”是lita的一条路由,可以理解成lita的监听规则,lita会用"^sayhi"这个正择表达式去匹配address给lita的消息,一经匹配成功lita就会跑对应的方法hello。"response"可以把他理解成chat的上下文切入工具,可以通过response回复一些信息。

4.然后在lita_config.rb中引入hello.rb

在lita_config.rb中加入一行,require './hello'

chatops之落入俗套的“你好,世界”_第5张图片
lita_config.rb 

接下来就在shell环境下小试一下牛刀,打开lita_config.rb配置lita的adapter为shell(默认)

shell adapter

在终端到helloworld目录下键入lita start来启动lita,之后键入Lita sayhi来验证我们添加的第一个功能sayhi. 你可以看到我们给lita一个sayhi指令,然后lita给我们回复了“hi, this is our first chatbot, welcome here!”,如果你也得到如下结果的话,那么恭喜你有了一个好的开始!

验收第一个功能 

slack做为adapter

首先要在团队的slack中申请一个lita的token -- 到https://your_team.slack.com/apps申请lita应用,如果你所在的组织没有审计slack app使用的话,会很顺利的申请到一个lita。打开刚刚申请 的lita应用,可以看到如下图所示的api toke

chatops之落入俗套的“你好,世界”_第6张图片
api token

然后回支终端,到之前创建的helloworld目录下,打开lita_config.rb,将adapter设置为slack并添加token,如下图所示(请用自己的token来替换下图的"xxx...")

slack configuration

添加gem"lita-slack"到Gemfile中,通过bundle install命令安装相关包之后就是见证奇迹的时刻了

lita start

start lita

确认启动之后,到slack的channel中将刚才我们启动的lita添加到channel中,接下来就可以和他对话了

chatops之落入俗套的“你好,世界”_第7张图片
first lita

到此我们已经创建了第一个chatbot, 很简单,对吗?虽然只提供了一个简单的功能,但是可以无限扩展的,这篇小文的目的是给大家一个简单的指引,从而可以快速的搭起一个bot, 至于bot的功能,我认为只要你敢想敢做,是没有什么不可能的(也来一碗鸡汤,不过这是事实:))。

其实chatbot是一个很了不起的的集成工具,要以将任意系统集成到bot中,这样就可以实现多个系统的自由,快速的协作从而提高工作效率。

结合之前两篇文章,针对chatops已经讨论了what, why and how, 希望大家有兴趣的话可以发散自己的思维,把chatops应用到工作和生活中。由于最近比较忙,所以这次更新的比较慢,不过答应大家的事情搞完了,松了口气!之后会看情况不定期讨论一些security或应用场景相关的实践,大家也可以加我wechat交流。

最后,chatops的世界很多彩绚丽,相信如果你愿意付出时间,一定可以做出一个像jarvis一样的机器人来帮你完成大部分的事情。

你可能感兴趣的:(chatops之落入俗套的“你好,世界”)