项目介绍
wechaty(https://github.com/wechaty/wechaty)是一款开源的微信SDK,它基于微信公开的API,对接口进行了一系列的封装,提供一系列简单的接口,然后开发者可以在其之上进行微信机器人的开发。在跟作者沟通试用以后,发现其中有着非常多的应用场景,比如:
1)如果你的好友众多,如何管理和维护好友分组;
2)如何快速有序地处理海量聊天信息,并区分重要性;
3)如何处理海量的聊天组,特别是微信可以任意建组,长期以后会出现非常多的聊天组;
4)能否可以自动智能地进行聊天回复
5)……
1 快速上手
wechaty使用node编写,所以支持几乎所有的平台,wechaty的hello-world只需要6行代码即可实现聊天记录的动态收集。为了使用方便作者还进行了docker化的封装,结合docker绝对是一个不错的选择。
Step 1: 新建一个mybot.js,内容如下:
const { Wechaty } = require('wechaty')
Wechaty.instance() // Singleton
.on('scan', (url, code) => console.log(`Scan QR Code to login: ${code}\n${url}`))
.on('login', user => console.log(`User ${user} logined`))
.on('message', message => console.log(`Message: ${message}`))
.init()
Step 2: 在主机上运行命令
$ docker run -ti --rm --volume="$(pwd)":/bot zixia/wechaty mybot.js
Step 3: 拷贝二维码到浏览器
2 容器化分析
wechaty是一个比较好的docker化例子,其工程根目录下的Dockerfile详细描述了如何构建镜像,也就是需要哪些环境。通过Dockerfile我们可以看出,它使用的基础镜像是基于alpine的node镜像mhart/alpine-node:7
alpine是我们日常比较推荐的镜像,最小的只有4M左右。之后是一些常用的包的安装,具体可以参看Dockerfile。在运行时,会将mybot.js映射到容器内部,这样就相当于把运行环境和具体的应用进行了隔离。
3 其他例子
hello-world一般只是最简单的例子,这个框架真正厉害的是包含了其他一些用例,具体位于https://github.com/wechaty/wechaty/tree/master/example
其中包含了:
1)api-ai-bot.ts : 通过调用api.ai,进行人工智能方面的识别
2)contact-bot.ts : 列举的好友weixin id 和 name
3)ding-dong-bot.ts : 一个自动回复例子,如果好友输入’ding’,自动回复’dong’
4)friend-bot.ts : 添加好友,同意添加,消息验证的例子
5)media-file-bot.ts : 多种不同消息类型十倍的例子,保存media-file到本地
6)room-bot.ts : 对于聊天组的一系列例子,包括查找、添加、删除、改主题、监控组事件等等
7)speech-to-text-bot.ts : 当收到语音时,调用第三方接口,转换成文字,用户可以根据需求选择不同的语音识别API
8)tuling123-bot.ts : 国内的一个机器人集成例子
其实细心的朋友,看到这里会问,到底这个框架能否支持动态抢红包呢?这就留给有兴趣的朋友去研究了。同时,我们也会在后续分享一些其他的开源项目介绍。
4 通过Ghostcloud EcOS部署wechaty
EcOS (Enterprise container Operation System)是由Ghostcloud精灵云全自主研发的Docker容器云平台, 为企业研发、运维及新业务上线部署提供了一整套解决方案和管理平台。通过EcOS用户可以快速在私有云和混合云环境安装Docker,官方地址是:www.ghostcloud.cn
Ghostcloud EcOS,安装步骤如下:
1、浏览器访问 http://ecospkg.ghostcloud.cn/EcOS/stable/ , 下载最新的安装文件(EcOS-install*)和服务镜像文件(srvimgs.tgz)到需要安装的服务器根目录
2、解压安装文件,执行安装脚本
tar -zxf Ecos-install* && bash install.sh IPADDR(这里的IPADDR是安装EcOS所在的服务器IP地址)
3、解压服务镜像文件,执行push镜像操作tar -zxvf srvimgs.tag && ./srvimgs/pushimgs.sh
4、详细安装步骤请移步至:
http://ecospkg.ghostcloud.cn/EcOS/video/EcOS_Install.mp4
部署
1)创建wechaty服务
通过EcOS平台创建wechaty容器(容器具体操作见
http://ecospkg.ghostcloud.cn/EcOS/video/EcOS_Contianer.mp4)
镜像选择wechaty:latest, 创建启动选择为是,可适当的增加内存容量(允许容器使用的内存)
2)监听 wechaty 容器的日志
使用putty或其他ssh客户端工具登录到创建wechaty容器的主机,执行
docker logs -f wechaty
扫描日志中的二维码或将URL地址复制到浏览器中扫描,然后正常的使用微信,可以看到终端中会有相关信息。
作者介绍
李卓桓,既是一位天使投资人,也是一位技术牛人,还喜欢极限运动,总结起来就是投资人中最会飞的程序员 J。有兴趣的朋友,可以搜索关注他的微信公众号-李卓桓,同时给他提Pull Request。