9

用java做一个能赚钱的微信群聊机器人(PC协议)

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzU2NDc4MjE2Ng%3D%3D&%3Bmid=2247486675&%3Bidx=1&%3Bsn=854a2c43b21336a03f6e2c39f12a340e
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

前言

微信群机器人,主要用来管理群聊,提供类似天气查询、点歌、机器人聊天等用途。由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现。

声明以下过程只用于交流学习,并不用于任何商业用途,这里记录一下整体的开发流程。

效果展示

mA7b2qz.png!mobile

接入过程

准备材料

下文中的服务器可以只需要一台,或者使用你本地电脑,我介绍一下我的环境。

  • 可爱猫微信机器人插件V4.4.0。

  • 一台windows服务器。

  • 一台linux服务器。

  • nginx安装(在window服务上,反向代理)。

安装可爱猫

由于是exe安装包,所以我们使用一台window服务器来直接安装。

安装后,界面如下图所示。

安装完毕,扫码登录微信。

mEjmMbY.png!mobile

配置功能插件

由于插件是基于微信pc端的协议开发,如果要自己定制插件需要使用易语言,或者下载官方的一些sdk开发包来接入。

mmQB3aN.png!mobile

如果不熟悉语言的话,比较麻烦,所以有网友已经开发好现成的插件给我们使用了,插件会把接收到的消息上报,后端只需要负责消息处理,所以使用什么语言都可以。

n2AJVrr.png!mobile

这里,我们使用熟悉的java来进行接入。

http插件安装完成后,需要配置地址。主要是消息回调地址,这是插件接收到群聊消息后会上报到此地址。如果在本地验证的话,就填写本地的一个http server的地址即可。

UvYZvaQ.png!mobile

http插件已有功能列举

http插件内置了许多api接口,我们可以直接调用,无需另外开发。 FnMzymE.png!mobile

配置nginx实现主动操作机器人给群发送消息

由于我使用的是两台服务器,调用本地插件的地址无法配置成外网,所以我使用nginx做了反向代理。配置文件如下:

m2ymy2i.jpg!mobile

可以看到对外暴露出8888端口。

jQfInui.png!mobile

我的linux服务器java服务,只需要调用这个ip的8888端口,就能把消息发送到本地的8073端口上。

消息回调后端的实现

uMNzU3n.png!mobile

由上图可知,后端只需要写一个接口接收数据就好。

6ze6jmQ.png!mobile

接入腾讯AI开放平台实现机器人聊天

首先,登录腾讯ai平台,新建一个应用。

YBvEze6.png!mobile

按照接口鉴权文档,生成签名。

如果使用php或者python做后端,那它还提供sdk下载,我们是java那就直接按照文档,调用http地址即可。

myIzemq.png!mobile

后端调用日志截图

EJ7bU3n.jpg!mobile

腾讯ai平台还可以提供语音识别接入、语言情感分析、OCR等,十分不错。 YBrmEjR.jpg!mobile

收到消息--->调用腾讯ai平台--->返回应答。

至此,通过这一流程,我们就实现机器的人自动回复,当然机器人也不是每句话都能有应答,如上图,71次调用,失败了17次。不过不收费,也挺不错的了。

群聊管理,实现踢人

相信大家在群聊过程中一定遇到过很多打广告的。我们可以通过群自己人实现自动踢人、主动@它踢人。

踢人都是通过调用api来实现的,特别注意的是,机器人必须是群主才行。

mQ3q6jb.png!mobile

自动踢人

这里我简单的通过设置一系列的关键词,来实现是否是广告,从而踢出用户。

3AZ77z.png!mobile

这里为了避免错踢,需要触发两次违规后才会将用户踢出群聊。 BF7BF3j.jpg!mobile

主动踢人

基于没有触发关键词的广告,我们可以通过@机器人,来调用接口实现踢人的目的。

NJjQj2q.png!mobile

其他应用

基于微信群机器人,可以实现很多有意思的功能,比如点歌、聊天, 具体可以来侠梦的开发笔记公众号一起交流交流。或是做一些商品的导购推广,定时给自己推送新闻等等。。。

通过机器人,可以实现24小时无人值守,全天候在线问答,插件同样提供完整的多语言API对接方案,方便二次开发,响应速度迅捷,可以快速的运行自己的业务

zQRVza2.png!mobile

网页版微信 API 被封了, itchat 等等基于 web API 的 bot 方案都失效了。

web 微信 封的是群发,涉及群的任何操作 都有可能被封,目前看到的协议有:

iPad 协议,不公开,代表作 阿里猫,虽然是淘客软件但是能自己用 C#开发插件实现自己的逻辑

PC 微信的 hook , 比较多 但是只能实现群发。

.手机端的 hook,刚出来的 理论上能实现各种功能 但是都不公开的。

希望大家开阔自己的思路。

fmaUJb2.jpg!mobile

好看的人才能点

2MfA7fr.gif!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK