正在加载
请稍等

菜单

Home 项目 基于itchat的Web端微信机器人
Home 项目 基于itchat的Web端微信机器人

基于itchat的Web端微信机器人

by   阅读量 4,573

上次做了个基于itchat的微信群聊消息同步机器人,基于itchat实现微信群消息同步机器人,在运行python代码后,就可以模拟网页端微信登陆,并在若干个群聊之间进行消息转发。

其原理是使用了itchat提供的接口,使得在登陆网页版微信后,一旦接收到目标群聊中的消息,就根据消息的类型分别处理,并转发到其他目标群聊中。

不过上一个版本的缺陷很明显:

  • 需要部署。要么一直开着一台电脑跑python代码,要么挂到服务器上,掉线了还不知道,回头还得继续折腾;
  • 非大众向。虽然itchat门槛不高,但还是需要掌握python等基础内容,才能知道如何使用;
  • 不易维护。之前的代码就是一个py文件,直接传到网盘里分享给别人,所以也谈不上什么进一步开发和完善。

所以,最好的解决方案,就是将之前的工作做成Web Service,这样在网站上注册个账号,简单配置一下,就可以方便地运行和监控。人人都可以使用,我也可以不断地添加新的功能。

这便是这次要讲的工作,我给项目取了个名字,“轻听”。为什么是这个名字呢?因为是随便一拍脑袋想的。

先看一下

网站已经部署到服务器上,网页首页长这样,还没加内容,有时间再整个高大上的首页出来。

网站首页

注册、登陆等基本用户模块都做好了,好的,登陆一下。

登陆账号

登陆成功之后就会跳到“个人主页”,目前采集的数据还不是很多,就随便做点展示。可以看到累计转发的群聊消息数量,以及各个群各种类型消息的数量,其他展示回头再加。

个人主页

群聊转发

目前最核心的是这一块,点右上角的头像,选择“我的轻听”,进入微信消息机器人的管理页面。

选择“我的轻听”

在这个页面中可以看到机器人当前的运行状态,一开始当然是“已停止”。

我的轻听

不要急着点“运行”,先完成机器人的配置。

  • 在“转发设置”里一开始是空的,点右上角的加号,以便添加一组转发规则;
  • 每一行表示一个群聊,“群聊名称”是群聊在你微信里的名称,“群聊简称”是你给它取的一个简称;
  • 比如说,我希望“全栈数据工程师一群”和“全栈数据工程师二群”之间消息互通,那么就在第一行的两个框里分别填上“全栈数据工程师一群”和“全栈一群”,然后在第二行的两个框里分别填上“全栈数据工程师二群”和“全栈二群”;
  • 如果还想加,点击“添加群聊”就可以再编辑第三个群第四个群;
  • 如果不需要转发某个群聊了,点右边的叉删掉就行;
  • 配置完毕后,点击“保存”,就会生成一个转发规则。

在下面的图片里,我建立了两个转发规则,全栈数据工程师两个群互通,老公们两个群互通,后者是我用来测试的,里面只有我、我老婆、我的小号。

转发规则

讲完了新建转发规则,自然就会有编辑转发规则,鼠标悬浮在已有的转发规则上,点击一下就可以进行编辑。

编辑规则

编辑的操作比较类似,编辑完了点“保存”即可。如果不需要这条转发规则了,点“删除”即可。

编辑规则

其他配置

在运行机器人之前,可以顺便完成下其他配置,目前提供了三个功能:入群消息、自动加群、掉线提醒。

“入群消息”是指有新人加入群聊后,机器人会在该群聊中发送欢迎消息,如果不填则不发送。欢迎消息可以随便写,但是得有一个%s占位符,在发送消息时会替换成新人的名称。

入群消息

“自动加群”是指有人加了机器人为好友后,机器人会自动邀请该用户加入指定群聊,如果不填则不邀请。机器人会自动通过好友申请,所以我在这里填了“全栈数据工程师二群”,有人加我小号的话就会自动通过,并收到群聊邀请。

自动加群

“掉线提醒”是指当机器人微信掉线后,给指定的邮箱发送提醒邮件,如果不填则不发送。这样在由于各种原因导致机器人掉线后,指定的邮箱就会收到提醒,于是赶紧再去运行起来。

掉线提醒

开始运行

完成以上配置后,点击最开始的“运行”按钮。

开始运行

网站就会去请求二维码,等二维码出来之后扫一下,在手机上点确认登陆。

扫描二维码

然后就登陆成功了,页面会自动刷新,并显示“运行中”。

运行成功

由于所有操作都是在网页上进行,自然方便了不少。

数据上传

对于转发规则中的群聊,群聊消息都会上传至数据库,群聊中的图片、视频、文件也会上传到对应的用户目录。等数据量多了,就可以在“个人主页”中多加点功能了,什么群消息统计、群话题提取、情感分析,都可以搞搞。

总结一下

平时挺忙,上次弄完第一版之后就有做Web Service的想法,不过一直拖了好几个月。上周末抽了两天时间完成了以上功能,目前的版本自己用起来挺顺手了。

关于微信机器人,建议不要转发太多群,不然消息发送太频繁会被检测出来,然后账号被禁,无法登陆网页端微信。所以我主要用于自己的全栈数据工程师群聊消息同步,毕竟做这个的初衷是解决群聊人数上限500的问题,而不是把各种本来目的就不一样的群接在一起。

当然了,微信机器人主要是在自己的群聊里用,如果你在别人的群聊里巴拉巴拉发那么多消息,应该会被踢吧……

虽说网站已经部署到服务器上,不过还处于测试版本,毕竟如果用户多了,同时运行很多个机器人就得考虑到开销问题,后期有时间再想想怎么解决。

最后来看看效果,目前文本、图片、视频、分享、文件等类型的消息都可以转发,而且也比较稳定,可以运行之后放心干别的事去了~

成果展示

网站链接是,mylisten.vip,目前还在内测中,所以对用户总数量做了点限制,欢迎试用~

28 2017-06

6条评论

  1. 匿名说道:

    开源么大神?感谢分享

  2. 匿名说道:

    想知道博主是怎样做成Web Service?和解决itchat多开的问题?

  3. 匿名说道:

    开源吗?

  4. 匿名说道:

    刚注册、设置并登录运行了,发现没有转发成功。

发表评论