mxxWechatBot微信机器人主动给机器人发送消息

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

前言

注意:

  1. 免责声明:该工具仅供学习使用,禁止使用该工具从事违法活动,否则永久拉黑封禁账号。
  2. 本工具我不会绝对保证对你的账号没有影响,尽量使用小号去研究学习,mxxWechatBot不承担任何责任。

经过用户的不断使用与反馈,发现了个问题,虽然mxxWechatBot工具支持兼容不同编程语言,但是写法略有所不同,许多小伙伴在使用的过程中,还是发现在调用主动发送 的接口还是有点小问题,今天,我就简单的使用java写个demo供大家参考吧。

接口地址

为了避免接口滥用,以及数据安全的问题,接口地址放在微信群里面了,有需要的使用mxxWechatBot的小伙伴们可以联系我,获取api接口地址。

一、获取token

  • 请求方式:post
  • 接口地址:{apiUrl}/getWechatToken
  • 参数:
JSON 复制代码
  {
    "username": "username",  //服务端的用户名
    "password": "password"  //服务端的密码
}
  • 响应内容:
json 复制代码
  {
	"msg": "操作成功",
	"code": 200,
	"expireTime": 1704200673599,  //失效时间
	"token": "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc1M2NmMzMwLTJkZmItNDc1Ny04ZWIzLWU3MjgwOTk4ZDEyYyJ9.-XuaK8O-8EV694vUzkU5yDMmoheOJZylHJcrMEcfG0uoS-1MzBTVudbFmQro42sF63DPwqQ"  //token的值
}
  • 示例代码:
java 复制代码
 /**
     * 获取服务端机器人的token
     */
    public String getmxxWecharBotToken(){
        String url = WECHAT_SERVE_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;
    }

注意,token的默认失效时间为30分钟。

二、主动发送消息

  • 请求方式:post
  • 接口地址:{apiUrl}/system/object/customApiSendMsg
  • 参数:
JSON 复制代码
{
    "wxid": "xxxx@chatroom",    //需要发送的群或者好友
    "tag": 0,                  //消息类型
    "appkey": "xxxxx",        //-1设置百度的appkey和秘钥 0表示发送文字,1表示发送图片 2发送本地文件 3发送H5小卡片 4发送小程序  5发送音乐卡片 6发送xml文件 7发送聊天记录  8语言消息 9名片消息 10视频消息 11动态表情 12地理位置 13分享链接或者附件 14红包 15群邀请 16系统消息  17其他类型的xml
    "message": "你好",      //消息内容
    "isAt": false,        //是否需要艾特
    "atList": [
        "wxid_ehfxxxxbt22"      //艾特的人员
    ]
}
  • 响应内容:
json 复制代码
  {
	"msg": "操作成功",
	"code": 200
}
  • 示例代码:
java 复制代码
 /**
     * (微信机器人)定时发送每日天气文字到微信群中
     */
    @GetMapping("/sendWetherInfoByDaysText")
    @Scheduled(cron = " 0 10 9 * * ?")
    public void sendWetherInfoByDaysText() {
        StringBuilder sb = new StringBuilder();
        sb.append("\\uD83D\\uDD34\\uD83D\\uDFE0\\uD83D\\uDFE1 大家好!我是雄雄,让我们一起关注天气变化,关爱彼此,共度美好时光。祝愿大家拥有一个愉快的一天!");
        sb.append("/cbr");
        sb.append("/cbr");
        //获取中央气象台每日天气信息
        JSONObject objectZhongYang = collectWebDataUtils.getZYWetherDay();
        //文本信息
        JSONArray contentList = objectZhongYang.getJSONArray("contentArray");
        int i = 1;
        for (Object o : contentList) {
            if (i == 1) {
                sb.append("[拥抱]")
                        .append(o)
                        .append("/cbr");
            } else if (i == 2) {
                sb.append("\\uD83D\\uDD34")
                        .append(o)
                        .append("/cbr");
            } else if (i == 3) {
                sb.append("\\uD83D\\uDFE0")
                        .append(o)
                        .append("/cbr");
            } else if (i == 4) {
                sb.append("\\uD83D\\uDFE1")
                        .append(o)
                        .append("/cbr");

            } else if (i == 5) {
                sb.append("\\uD83D\\uDFE2")
                        .append(o)
                        .append("/cbr");

            }
            sb.append("/cbr");
            i++;
        }
        sb.append("/cbr");
        sb.append("数据来源于:中国中央气象台");
        //处理url中的特殊字符
        try {
            //调用发送的方法
            String result = sendMsgToWechat(xunXiWxid, XIAOTANGYUAN_REBOT_TEXT, XIAOTANGYUAN_REBOT_APPKEY, sb.toString(),false,new JSONArray());
            log.info("发送天气信息结果:" + result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

三、获取群、好友以及公众号列表

  • 请求方式:get

  • 接口地址:{apiUrl}/system/apiMxxWechatBot/getGandFList?appkey=xxxx&tag=2&pageNum=1&pageSize=10

  • 参数:appkey:你的appkey,tag:0-好友 1-群聊 2-公众号,pageNum:当前页,pageSize:页大小

  • 响应内容:

json 复制代码
  {
  "total": 54,      //总数量
  "rows": [
    {
      "createBy": null,    
      "createTime": null,
      "updateBy": null,
      "updateTime": null,
      "remark": null,      //备注
      "id": 1741790943530897408,  
      "name": null,
      "wxid": "xxxxx@chatroom",
      "wxnum": null,
      "nick": "mxxWechatBot交流群",    //群名
      "v3": "",
      "v4": null,
      "sign": "",
      "country": "",
      "province": "",
      "city": "",
      "momentsbackgroudimgurl": null,
      "avatarminurl": null,
      "avatarmaxurl": null,
      "sex": "",
      "membernum": null,
      "type": 2,
      "userId": 123
    }
  ],
  "code": 200,
  "msg": "查询成功"
}
  • 示例代码:
java 复制代码
 /**
     * 获取群聊列表
     */
     public void getList(){
        String url = WECHAT_SERVE_API + "/system/apiMxxWechatBot/getGandFList?appkey=1998090800300000&tag=2&pageNum=1&pageSize=10";
       
        String body = HttpUtil.createGet(url)
                .execute()
                .body();
        log.info("请求获取服务端的token:{}",body);
        JSONObject jsonObject = JSON.parseObject(body);
        String token  = "";
        if(jsonObject.getInteger("code") == 200){
            //处理业务即可
        }
    }

今天的分享就到这里,有疑问的可以在群内交流沟通。

相关推荐
tuokuac18 分钟前
nginx配置前端请求转发到指定的后端ip
前端·tcp/ip·nginx
程序员爱钓鱼21 分钟前
Go语言实战案例-开发一个Markdown转HTML工具
前端·后端·go
万少43 分钟前
鸿蒙创新赛 HarmonyOS 6.0.0(20) 关键特性汇总
前端
桦说编程1 小时前
爆赞!完全认同!《软件设计的哲学》这本书深得我心
后端
thinktik1 小时前
还在手把手教AI写代码么? 让你的AWS Kiro AI IDE直接读飞书需求文档给你打工吧!
后端·serverless·aws
还有多远.1 小时前
jsBridge接入流程
前端·javascript·vue.js·react.js
蝶恋舞者1 小时前
web 网页数据传输处理过程
前端
非凡ghost1 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
吃饭最爱2 小时前
html的基础知识
前端·html