前言

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

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

效果展示

接入过程

准备材料

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

  • 可爱猫微信机器人插件V4.4.0。
  • 一台windows服务器。
  • 一台linux服务器。
  • nginx安装(在window服务上,反向代理)。
安装可爱猫

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

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

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

配置功能插件

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

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

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

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

http插件已有功能列举

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

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

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

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

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

消息回调后端的实现

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

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

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

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

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

后端调用日志截图

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

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

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

群聊管理,实现踢人

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

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

自动踢人

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

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

主动踢人

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

其他应用

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

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

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

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

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

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

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

欢迎来公众号【侠梦的开发笔记】,回复干货,领取精选学习视频一份

使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)的更多相关文章

  1. 如何用20行Python代码打造一个微信群聊助手?

    今天要教大家一个黑科技,20行代码实现自己定制的微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的微信上有一大批好 ...

  2. 一个模仿微信群聊的H5页面

    开始 上半年小米Max发布的时候,做了一个在朋友圈传播的模仿微信的群聊界面H5页面:一群公司的大咖在群里聊小米Max,用户可以向大咖们提问,以此了解产品. 页面的主体是群聊对话,同时在对话中包含了很多 ...

  3. 微信二维码支付-模式一(PC端,解决中文乱码问题)

    近期公司调完银联,调支付宝,调完支付宝调微信.说实话微信的帮助文档确实是烂,而且有没有技术支持,害的我头发都掉了一桌.不说废话了,看代码. 首先登陆微信的公众平台(微信的服务号不是订阅号),然后选择微 ...

  4. java项目-----客户端与客户端通信--实现群聊功能的代码

    这是这个网络聊天室项目的原理图: 很简单,首先ABCD是4个客户端,当A发送信息给服务器,服务器实现以广播的形式把信息全发给每个人---群发群聊 客户端代码: package com.aa; impo ...

  5. 基于itchat的微信群聊小助手基础开发(一)

    前段时间由于要管理微信群,基于itchat开发了一个简单的微信机器人 主要功能有: 图灵机器人功能 群聊昵称格式修改提示 消息防撤回功能 斗图功能 要开发一个基于itchat的最基本的聊天机器人,在g ...

  6. Tinychatserver: 一个简易的命令行群聊程序

    这是学习网络编程后写的一个练手的小程序,可以帮助复习socket,I/O复用,非阻塞I/O等知识点. 通过回顾写的过程中遇到的问题的形式记录程序的关键点,最后给出完整程序代码. 0. 功能 编写一个简 ...

  7. 2017.12.2 用java做一个日历

    1.先判断输入的日期是否为闰年 2.在判断输入的月份是否为2月 3.在获取输入的年份和月份的1月1日 的列数 4.在输出 import java.util.*; public class demo{ ...

  8. 用Java做一个跳一跳辅助

    Java跳一跳辅助 首先..让大家看下效果: 由于是闲着没事写的.也懒得看OpenCV的API了. 要用到的工具如下: adb+jdk 把adb添加到环境变量里就行.很简单. 全部代码如下.就这么多. ...

  9. Java做一个时间的程序,为什么要除以1000*60*60*24啊。这个数字是什么意思啊。

    1000耗秒(1秒),60秒(1分),60分(1小时),24小时(1天)

随机推荐

  1. Adam那么棒,为什么还对SGD念念不忘 (1) —— 一个框架看懂优化算法

    机器学习界有一群炼丹师,他们每天的日常是: 拿来药材(数据),架起八卦炉(模型),点着六味真火(优化算法),就摇着蒲扇等着丹药出炉了. 不过,当过厨子的都知道,同样的食材,同样的菜谱,但火候不一样了, ...

  2. poj1573

    题意:给出一个矩形,N,E,S,W分别代表进行移动的方向,如果走出矩形网格则输出经过的网格数,如果在矩形网格内循环,则输出没进入循环之前所走过的网格数和循环所经过的网格数: 思路:创建两个数组,一个字 ...

  3. java 网络编程Socket

    TCP: 通过TCP协议传输,得到的是一个顺序的无差错的数据流. 发送方和接收方的成对的两个socket之间必须建立连接, 以便在TCP协议的基础上进行通信,当一个socket(通常都是server ...

  4. 解决vscode电脑卡顿问题

    在安装了vscode之后,发现电脑很卡,cpu使用率高达100%. 解决方法1: 打开vscode之后,点击文件==>首选项==>设置搜索设置search.followSymlinks然后 ...

  5. JOISC2014 挂饰("01"背包)

    传送门: [1]:洛谷 [2]:BZOJ 参考资料: [1]:追忆:往昔 •题解 上述参考资料的讲解清晰易懂,下面谈谈我的理解: 关键语句: 将此题转化为 "01背包" 类问题,关 ...

  6. C# double 好用的扩展

    在很多代码需要使用数学计算,在用到 double 很难直接判断一个值是 0 或者 1 ,判断两个值相等. 本文提供一个数学扩展,让大家可以简单使用到 double 判断 在开始看本文之前,希望大家是知 ...

  7. fetch是什么?写一个fetch请求

    fetch是web提供的一个可以获取异步资源的api,目前还没有被所有浏览器支持,它提供的api返回的是Promise对象,所以你在了解这个api前首先得了解Promise的用法. 参考链接:http ...

  8. FreeSql取多表数据

    该篇内容由个人博客点击跳转同步更新!转载请注明出处! 以文章随笔与分类为例. 表结构 部分字段如下,其他省略,为了展示一对多关联,一个分类下可以有多个文章.一个文章属于一个分类. blog_artic ...

  9. CodeTypeDeclaration,CodeMemberProperty动态生成代码

    由于是CodeDom些列,所以先介绍几个CodeDom表达式: :CodeConditionStatement:判断语句即是if(condition){} else{},看最全的那个构造函数: pub ...

  10. monorepo仓库管理方式探秘

    前言 随着功能和业务量级的飙升,前端代码量级也越来越大,管理运维的成本也进一步增加. 代码仓库的运营管理挑战也浮出水面. 主流方案有两种:一是multirepo式的分散式的独立仓库,二是monorep ...