mxxWechatBot微信机器人主动给机器人发送消息
2024-01-02 23:08:44
大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。
前言
注意:
- 免责声明:该工具仅供学习使用,禁止使用该工具从事违法活动,否则永久拉黑?封禁账号。
- 本工具我不会绝对保证对你的账号没有影响,尽量使用小号去研究学习,
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!