Skip to content

williamcspace/weixin-robot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI Status

weixin-robot

UPDATE

(2017.02.24):添加了message-queue分支。

(2017.02.28):抽离消息队列的间隔时间为一个独立的变量messageQueueGetInterval,单位是毫秒


这是一个微信机器人,是本人在学习使用Node.js的过程中,为激发自身的学习热情而做的项目。同时该项目也是为了解决在"聊聊架构"微信群在技术分享过程中消息自动转发的问题。

消息源---------------自动转发---------------->多个目标群

0. 问题的提出

在"聊聊架构"有多个微信群,群内定期有技术专家进行技术分享,但是由于嘉宾只在一个群中分享,其他的群都需要“手动”转发信息,这样无造成了极大的人力资源浪费,因此有了编写一个自动转发工具的念头。

1. 工具的技术选型

在项目前确定技术选型是一个重要的事情,搜索一番后,发现github上存在不少微信机器人,但是很多都是用于“新成员进群问好”、“发送天气信息”等,而且因为要监视新成员进群和群友的提问,所以这些程序大部分需要部署在服务器上作长时间的运行。

但是“聊聊架构”这边不需要这样的功能,我们只需要在特定的时间、特定的地点、特定的人的信息转发到其他群即可,因此考虑编写一个客户端程序,在考虑到“聊聊架构”的志愿者团队中使用了多种操作系统,因此跨平台是必须的,因此放弃的最初的技术选型.net,改用Node + Electron的技术形式。

2. 工具的功能

2.1 已经实现的功能

  • 文字信息的转发
  • 图片的转发

2.2 尚未实现的功能

  • 对微信消息中连接消息的转发
  • 引入持久化存储,记录每次转发的消息
  • 完善log日志(目前很多log语句被注释掉,log的格式也不一致)

3. 工具的安装和使用

3.1 工具的安装

将源代码下载下来后,进入项目的根目录,执行以下命令安装依赖关系:

npm install

这样依赖关系就安装完成,遇到npm安装缓慢,需要设置镜像的同学可以看我的blog文章https://my.oschina.net/cloes/blog/825028

接着运行

npm start

开启程序,如图:

启动图片

此时,后台终端也在输出调试信息:

终端调试信息

然后用手机微信程序扫描二维码,此时点击消息源就会显示群组和群组内的用户:

选择群组:

选择群组

选择群组后,选择用户(支持多选):

选择用户

图中的三个用户的发言就会被转发到“目标群”

选择目标群(支持多选):

选择目标群

点击确定后,程序开始进入监听转发状态。

注意: 只有在群设置里面设置了“保存到通讯录”的群组才会显示在下拉框里面

保存到通讯录

至此,设置完成,工具就会静静的工作,终端也会输出调试信息,如图:

终端输出

4.例子

4.1需求

源头群:“来源群”中的cloes用户的发言

目标群:3个“目标群”,分别是目标群1、目标群2、目标群3

动作:当cloes在来源群发言的时候,自动将内容转发到3个目标群

4.2设置

4.2.1 设置“来源群”

选择来源群

4.2.2 设置“来源群”中的消息来源用户

选择来源用户

4.2.3 设置3个“目标群”

设置目标群

4.2.4 效果

当“来源群”的cloe发布消息后,消息将会被自动转发到其他的3个“目标值”

转发效果

5.bug提交

各位如果遇到问题,欢迎提交到issues.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 95.4%
  • HTML 4.4%
  • CSS 0.2%