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

2024-01-02 23:08:44

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


前言

注意:

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

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

其他文章地址:mxxWechatBot专栏

接口地址

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

一、获取token

  • 请求方式:post
  • 接口地址:{apiUrl}/getWechatToken
  • 参数:
  {
    "username": "username",  //服务端的用户名
    "password": "password"  //服务端的密码
}
  • 响应内容:
  {
	"msg": "操作成功",
	"code": 200,
	"expireTime": 1704200673599,  //失效时间
	"token": "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc1M2NmMzMwLTJkZmItNDc1Ny04ZWIzLWU3MjgwOTk4ZDEyYyJ9.-XuaK8O-8EV694vUzkU5yDMmoheOJZylHJcrMEcfG0uoS-1MzBTVudbFmQro42sF63DPwqQ"  //token的值
}
  • 示例代码:
 /**
     * 获取服务端机器人的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
  • 参数:
{
    "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"      //艾特的人员
    ]
}
  • 响应内容:
  {
	"msg": "操作成功",
	"code": 200
}
  • 示例代码:
 /**
     * (微信机器人)定时发送每日天气文字到微信群中
     */
    @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:页大小

  • 响应内容:

  {
  "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": "查询成功"
}
  • 示例代码:
 /**
     * 获取群聊列表
     */
     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){
            //处理业务即可
        }
    }

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

文章来源:https://blog.csdn.net/qq_34137397/article/details/135351008
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。