mxxWechatBot微信机器人V2(流程图、原理)

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

前言

经过不断地探索与研究,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客户端发送的消息,消息内容格式如下:

json 复制代码
{
	"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为例,代码如下:

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

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

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

①获取token

java 复制代码
/**
     * 获取服务端机器人的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){
            //获取token
            token = jsonObject.getString("token");
            //将token放在缓存中
            redisService.setCacheObject("mxxWechatRotToken",token,28, TimeUnit.MINUTES);
        }
        return token;
    }

②请求接口:

java 复制代码
/**
     * 给微信机器人中发送信息的公共方法
     */
    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 = "";
        //获取token
       Object 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;
    }

详情请参考接口文档: console-docs.apipost.cn/preview/4eb... 以及这篇博客: blog.csdn.net/qq_34137397...

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

怎么使用?

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

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

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

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

  5. 在win机器上,启动客户端、注入、登录微信,教程:blog.csdn.net/qq_34137397...

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

然后就可以使用了。

相关推荐
iPad协议个微协议7 小时前
用 WechatApi 搭建微信自动化系统,需要哪些工程能力
微信·自动化·微信开发·wechatapi·个人微信号二次开发·微信ai客服·微信智能体ai
微信ipad协议开发8 小时前
微信机器人 SaaS 还是私有化部署?两种模式对比选型
微信·机器人
懂软件的胡子个哥11 小时前
微信二次开发如何设计高可用架构,服务器故障时消息不能跟着丢
微信·自动化·wechatapi·个人微信号二次开发·微信群管理
懂软件的胡子个哥1 天前
微信二次开发如何接入 AI,真正可用的不是简单自动回复
运维·微信·wechatapi·个人微信号二次开发·微信群管理
懂软件的胡子个哥1 天前
微信二次开发如何设计统一消息中心,让后期扩展更简单
微信·自动化·wechatapi·个人微信号二次开发·微信群管理
SXkehuirongsheng1 天前
APP定制开发怎么判断服务商的技术实力
百度·微信·app·网站建设·文心一言·微信公众平台
iPad协议个微协议1 天前
微信二次开发如何做好日志和监控,很多线上问题不是接口本身
微信·自动化·微信开发·wechatapi·个人微信号二次开发
iPad协议个微协议1 天前
微信二次开发如何用 WechatApi 打通消息、客户和业务系统
运维·微信·自动化·微信开发·wechatapi·个人微信开发
懂软件的胡子个哥2 天前
微信 API 消息回调怎么设计,才能避免丢消息和重复处理
运维·微信·架构·wechatapi·个人微信号二次开发
懂软件的胡子个哥2 天前
微信群运营怎么通过微信 API 做问题提醒和活动管理
微信·自动化·wechatapi·个人微信号二次开发