mxxWechatBot微信机器人V2版本文档说明

大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。


先看这里

    • 一、前言
    • 二、mxxWechatBot流程图
    • 三、怎么使用?

一、前言

经过不断地探索与研究,mxxWechatBot正式上线,届时全面开放使用。

mxxWechatBot,微信机器人,实现原理主要是是hook注入,部署环境要求如下:

  1. 操作系统:windows操作系统
  2. 微信版本:WeChatSetup3.6.0.18.exe(安装包可以找我要)
  3. jdk版本:目前使用的是1.8,安装包也可以找我要
  4. 系统最低配置要求:2核4G的win系统即可。

也可以从服务端的资料下载中下载。

初识版本大约是在今年5月份就推出来了,当时使用用户不是很多,不断地改进到现在。为什么改造这么长时间?其一平时工作本身也比较忙,没有多余的时间静下来去改善。其二是,机器人满足了自己的需求了,就没有在扩展的写了,后来经过用户一使用,问题还是不少,于是就继续改造,好在功夫不负有心人,终于改造完了。接下来,我来整体的说一下情况吧:

二、mxxWechatBot流程图

上面的流程图其实一目了然了,mxxWechatBot一共分为了三端,分别为:

  • mxxWechatBot客户端,主要部署在用户的win系统上
  • mxxWechatBot服务端,主要部署在博主这边
  • 用户业务端,主要部署在用户端,或是家里的本地服务器,或是云服务器

三个端之间的各个请求环节大家可以看流程图即可,算了…估计有的懒人可能都不认证看流程图就开始问问题了。我还是简单的总结一下流程图中的内容吧。

  1. 当用户发送消息后,客户端会收到用户所发送的消息,然后判断当前客户端账号是否有权限调用自定义接口,如果有,则查询本地文件(你不用关注是哪个文件)看看用户发送的消息中,有没有和你自定义设置的关键词所匹配,如果有,则调用你在服务端设置的自定义接口,如果没有,则不操作。

  2. 你业务端的自定义接口处理来自mxxWechatBot客户端发送的消息,消息内容格式如下:

{"msg":"收到的消息","tag":1,          //消息类型,0表示发送文字,1表示发送图片 2发送本地文件 3发送H5小卡片 4发送小程序 5发送音乐卡片 6发送xml文件 7发送聊天记录 -1设置百度的appkey和秘钥 8语言消息 9名片消息 10视频消息 11动态表情 12地理位置 13分享链接或者附件 14红包 15群邀请 16系统消息"atList":[],      //艾特的人"finalFromWxid":"发送消息的人",//如果是群,则是发送消息的人,如果是好友,该值为空"fromWxid":"发送的群",//如果是群,则是wxid,如果是好友,则是好友wxid"memberCount":100,//群成员数量,如果是好友,则为空"time":"16816816816",  //发送时间"msgSourse":0  //消息来源-0别人发送  1自己发送}

然后你需要写个请求方式为:post的接口,入参格式为json,然后按照你对应的业务去处理。

业务接口以Java为例,代码如下:

@PostMapping("/testQianDao")public void testQianDao(@RequestBody String data){//data就是传输过来的json格式字符串JSONObject dataJson = JSONObject.parseObject(data);//处理你的业务}

别的语言,自行去写即可。

  1. 处理完消息后,如果需要给发送消息的群或者好友回复,则需要调用一下发送消息的接口即可。
    发送消息以java为示例:

①获取token

/*** 获取服务端机器人的token*/public String getmxxWecharBotToken(){String url = "http://wechat.88688.team/prod-api/" + "/getWechatToken";JSONObject o = new JSONObject();o.put("username",LOGIN_USER_NAME);  //自己服务端的账号o.put("password",LOGIN_USER_PASSWORD); //自己服务端的密码String params = JSON.toJSONString(o);String body = HttpUtil.createPost(url).body(params).execute().body();log.info("请求获取服务端的token:{}",body);JSONObject jsonObject = JSON.parseObject(body);String token  = "";if(jsonObject.getInteger("code") == 200){//获取tokentoken = jsonObject.getString("token");//将token放在缓存中redisService.setCacheObject("mxxWechatRotToken",token,28, TimeUnit.MINUTES);}return token;}

②请求接口:

/*** 给微信机器人中发送信息的公共方法*/public String sendMsgToWechat(String wxid,Integer tag,String appkey,String message,boolean isAt,JSONArray atList){String url = WECHAT_SERVE_API + "/system/object/customApiSendMsg";String token = "";//获取tokenObject redisToken =  redisService.getCacheObject("mxxWechatRotToken");if (redisToken==null){token = getmxxWecharBotToken();}else{token = redisToken.toString();}log.info("token的值是{}",token);//将消息放在body中JSONObject paramsObject = new JSONObject();paramsObject.put("tag",tag);paramsObject.put("wxid",wxid);paramsObject.put("appkey",appkey);paramsObject.put("message",message);paramsObject.put("isAt",isAt);paramsObject.put("atList",atList);String body = HttpUtil.createPost(url).header(Header.AUTHORIZATION,"Bearer "+token).header(Header.CONTENT_TYPE,"application/json").body(JSON.toJSONString(paramsObject)).execute().body();log.info("给微信群中发送的结果:" + body);return body;}

详情请参考接口文档:
接口地址
以及这篇博客:
利用雄雄的小课堂-微信机器人通过自定义接口发送不同形式的内容至群

这就是整个流程,写文档比写代码还累,md…

三、怎么使用?

  1. 联系我,找我要个服务端的账号,微信:mxx2451999120(2024.2.1日之前,所有用户免费使用,后期预计收费15元/月)

  2. 拿到账号后,登录服务端,进资料下载的菜单下载资料,也可以找我直接要。

  3. 配置自定义接口:进自定义接口菜单中配置。

  4. 准备一台win操作系统的环境,如果没有,可以在网上买个XX宝,一月10块钱,半年50,比自己在家里开个机器方便多了,而且,自己的机器,一月电费都不止10块钱,有需要的,可以找我,我给你连接,不赚你一分钱。

  5. 在win机器上,启动客户端、注入、登录微信,教程:java版本微信机器人使用教程V1.0 。

  6. 登录上服务端,同步一下自己的自定义接口给客户端(注意,一定要启动好客户端之后在同步,不然同步不上)。

然后就可以使用了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【动态规划精选题目】3、简单多状态模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解简单多状态模型中的9道经典题,会在讲解题目同时给出AC代码 目录 1、按摩师 2、力扣198:打家劫舍1 3、打家劫舍II 4、删除并获得点数 5、 粉刷房子 6、力扣309:买卖股票的最佳时机含冷冻期 7、 买…

第二百三十七回

文章目录 1. 概念介绍2. 具体细节2.1 发现服务2.2 发现特征值2.3 发送数据 4. 经验总结1. 概念介绍2. 主要功能2.1 扫描蓝牙设备2.2 连接蓝牙设备 3. 示例代码4. 内容总结 我们在上一章回中介绍了"连接蓝牙设备的细节"相关的内容,本章回中将介绍通过蓝牙发…

【数据库系统概论】第7章-数据库设计

文章目录 7.1 数据库设计概述7.2 需求分析7.2.1 需求分析的任务7.2.2 需求分析的难点7.2.2 需求分析的方法7.2.3 数据字典 7.3 概念结构设计7.3.1 概念模型7.3.2 E-R模型7.3.3 概念结构设计 7.4 逻辑结构设计7.4.1 E-R图向关系模型的转换7.4.2 数据模型的优化7.4.3 设计用户子模…

【教程】标注工具Labelimg的安装与使用

图片标注主要是为了建立自己的数据集,便于进行更深度的学习训练。本篇文章将对一款十分好用的图片标注工具labelimg进行介绍,重点介绍其安装以及使用的过程。 - 什么是labelimg labelimg 是一个可视化的图像标定工具。它是用Python编写的,并…

HDFS客户端UnknownHostException事故解析

文章目录 前言事故现场问题分析是否是整个域名解析服务当时都出问题了是否是出问题的pods本身的域名解析有问题 异常发生的全部过程域名的解析是什么时候发生的,怎么发生的域名解析的详细流程 重试发生在什么地方为什么重试会无效 Bugfix代码详解关于StandardHostRe…

特殊权限(suid sticky acl mask)

1.suid 1. 普通用户可不可以修改密码? 答:是可以的,可以修改自己的密码 2. /etc/shadow 文件的作用是什么? 答:存储用户密码的文件 3. 普通用户是否可以修改/etc/shadow 文件? 答:不可以&…

STM32+Codesys工业软件PLC解决方案

工业控制系统在现代制造和自动化领域扮演着关键角色, 基于IEC 61131-3 标准的控制器编程开发软件平台CODESYS,适用于多种行业的控制系统的开发,使用户方便快捷地对自动化工程进行编程和配置,完成项目开发、软件测试和应用调试。 本次STM32联合合作伙伴C…

Docker logs 命令——查看docker容器日志

请直接看原文: 原文链接:Docker logs 命令——查看docker容器日志-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------- 用法: docker logs [OPTIONS] CONTAINER …

2023年全国职业院校技能大赛网络系统管理网络模块 网络构建答题卡(600)(还原截图锐捷)

网络构建答题卡(600) 要求:使用下面指令查看其运行状态,并使用FSCapture截图软件进行截图,将输入结果的截图插入到文档中。 职业素养(25) 截图文档整洁规范,根据题目要求进行截图。 整理赛位,工具、设备归位,保持赛后整洁有序。 遵守赛项记录,听从裁判安排。 基础…

FC UxROM (Mapper 2) 操作

UxROM 概览 mapper号2卡带名UxROMPRG ROM容量256K / 4096KPRG ROM窗口16K 16K fixedPRG RAM容量无PRG RAM窗口无CHR ROM容量无CHR ROM窗口n/a扩展声音无IRQ无 寄存器 Bank 选择 ( 8000 − 8000- 8000−FFFE) 7 bit 0 ---- ---- xxxx pPPP||||- 为 CPU $8000-$BFFF 选择…

服务器运行状况监控工具

服务器运行状况监视提供了每个服务器状态和性能的广泛概述,通过监控服务器指标,如 CPU 使用率、内存消耗、I/O、磁盘使用率、进程等,服务器运行状况监控可以避免服务器停机。 服务器性能监控指标 服务器是网络中最重要的组件之一&#xff0…

计算机网络复习6

应用层 文章目录 应用层网络应用模型域名系统DNS文件传输协议FTP电子邮件万维网 网络应用模型 客户/服务器模型 客户/服务器(Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求…

Python线程池实现的进阶知识

1.参数 max_workers 的设定 接前文 《Python多线程和线程池的下载实战用法 》中案例,继续分析 concurrent.futures.ThreadPoolExecutor() 是 Python 中的一个线程池实现,用于执行并发的任务。它可以通过参数 max_workers 来设置线程池的最大工作线程数。 在你提供的代码中,…

SLAM学习入门--编程语言

文章目录 编程语言一、C/C++C 与 C++ 的区别(面向对象的特点)C++ 与 Python的区别判断struct的字节数static 作用Const 作用extern "C"的作用多态如何实现多态?虚函数虚函数怎么实现的?析构函数虚析构函数的作用virtual函数能不能用在构造函数中&#

Java集合/泛型篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Collection包结构,与Collections的区别四、泛型常用特点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…

Spring系列学习四、Spring数据访问

Spring数据访问 一、Spring中的JDBC模板介绍1、新建SpringBoot应用2、引入依赖:3、配置数据库连接,注入dbcTemplate对象,执行查询:4,测试验证: 二、整合MyBatis Plus1,在你的项目中添加MyBatis …

Java 实现自动获取法定节假日

一、背景 在实现业务需求的过程中,遇到了需要计算 x 个工作日后的日期需求。由于工作日是每年国务院发布的,调休和休假都没有规律,所以无法使用算法进行计算。 一般的实现方案是自己维护一个工作日和调休的表,或者去爬取国务院发…

AutoSAR(基础入门篇)4.4-Autosar_BSW的Memory功能

Memory功能 一、Autosar_BSW的Memory 1、Memory 组件图 2、架构与术语解释 3、片内存储 4、片外存储

游戏加速器LSP/DLL导致WSL.EXE无法打开问题修复!

解决办法: https://github.com/microsoft/WSL/issues/4177#issuecomment-597736482 方法一:(管理员身份) netsh winsock reset 方法二: WSCSetApplicationCategory 函数设置LSP加载权限 bool NoLsp(const wchar_t* …

从零开始:使用 BIND 构建和管理您的 DNS 服务器

1 前言 在这篇文章中,我将详细介绍如何使用 BIND(Berkeley Internet Name Domain)软件包中的 named 程序来配置和管理一个基本的 DNS 服务器。 从安装 BIND 开始,到设置 DNS 区域文件,再到运行和测试您的服务器&#x…