返回 登录
0

微信机器人框架- wechaty

项目介绍

图片描述

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: 拷贝二维码到浏览器

图片描述

Step 4: 所有聊天记录就会打印到屏幕上
图片描述

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。

评论