微信API接口、微信二次开发API调用
微信API接口、微信二次开发API调用
微信协议接口调用-加微信好友及通过好友请求
加微信好友
/**
* 微信自动添加好友
* @author wechatno:tangjinjinwx
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx ,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
FriendAddTaskSetting req = JSON.parseObject(contentJsonStr,FriendAddTaskSetting.class);
if(null != req){
friendAddTaskService.savePcTask(req);
//3、告诉PC客户端消息已收到
MessageUtil.sendCustomJsonMsg(ctx, "AutoFriendAddTaskResp", resp);
}
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}
微信新增好友通知
/**
* 微信新增好友通知
* @author wechatno:tangjinjinwx
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
try {
FriendAddNoticeMessage req = vo.getContent().unpack(FriendAddNoticeMessage.class);
//把消息转发给pc端
asyncTaskService.msgSend2pc(req.getWeChatId(), EnumMsgType.FriendAddNotice, req);
//保存新增好友
asyncTaskService.saveFriendAddContactinfo(req);
//告诉客户端消息已收到
MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), Constant.ERROR_MSG_DECODFAIL);
}
}
微信协议接口调用-群发微信好友,群发群消息
群发微信好友、群发群
private static void talkMsgToFriend(TaskTimeInfo info, TimeTaskDetailsDao timeTaskDetailsDao,
List<String> friends) {
String executeTime = info.getExecute_time();
Date newDate = DateUtil.convertString2Date(executeTime, DateUtil.DATE_FORMAT_4);
Integer betweenTime = info.getBetween_time();
if (betweenTime ==null || betweenTime==0) {
betweenTime = (int)(Math.random()*3+3);
}
for (String friend : friends) {
String newExecuteTime = DateUtil.convertDate2String(newDate, DateUtil.DATE_FORMAT_4);
String msgStr = "";
String jsonStr = info.getContent();
List<MessageVo> list = JsonUtils.json2Bean(jsonStr);
for (int i = 0; i < list.size(); i++) {
MessageVo msg = list.get(i);
ByteString byteString = ByteString.copyFromUtf8(msg.getContent());
TalkToFriendTaskMessage.Builder build = TalkToFriendTaskMessage.newBuilder();
build.setWeChatId(info.getWechatId());
build.setFriendId(friend);
build.setContent(byteString);
build.setMsgId(MsgIdBuilder.getId());
if (msg.getContentType().equalsIgnoreCase("Text")) {// 文本类型
build.setContentType(EnumContentType.Text);
} else if (msg.getContentType().equalsIgnoreCase("Picture")) {// 图片类型
build.setContentType(EnumContentType.Picture);
} else if (msg.getContentType().equalsIgnoreCase("Voice")) {// 语音类型
build.setContentType(EnumContentType.Voice);
} else if (msg.getContentType().equalsIgnoreCase("Video")) {// 视频类型
build.setContentType(EnumContentType.Video);
} else if (msg.getContentType().equalsIgnoreCase("Link")) {// 链接类型
build.setContentType(EnumContentType.Link);
} else if (msg.getContentType().equalsIgnoreCase("WeApp")) {// 小程序
build.setContentType(EnumContentType.WeApp);
}
TalkToFriendTaskMessage msg1 = build.build();
if (null != msg1) {
try {
String json = JsonFormat.printer().print(msg1);
if (!StringUtils.isEmpty(json)) {
msgStr = msgStr + json;
if (i != (list.size() - 1)) {
msgStr = msgStr + "&&";
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
if (null != msgStr) {
try {
if (!StringUtils.isEmpty(msgStr)) {
TimeTaskDetails detail = new TimeTaskDetails();
detail.setTid(info.getId());
detail.setExecute_time(newExecuteTime);
detail.setJson_content(msgStr);
detail.setMsgid(String.valueOf(MsgIdBuilder.getId()));
timeTaskDetailsDao.insert(detail);
}
} catch (Exception e) {
e.printStackTrace();
}
}
newDate = DateUtil.offsetSecode(newDate, betweenTime);
}
}
个人微信api接口调用-发微信朋友圈、拉取朋友圈数据功能
推送微信朋友圈列表
/**
* 触发推送朋友圈列表
* @author wechatno:tangjinjinwx
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
TriggerCirclePushTaskMessage.Builder bd = TriggerCirclePushTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
TriggerCirclePushTaskMessage req = bd.build();
// TriggerCirclePushTaskMessage req =
// vo.getContent().unpack(TriggerCirclePushTaskMessage.class);
// 将消息转发送给手机客户端
asyncTaskService.msgSend2Phone(ctx, req.getWeChatId(), EnumMsgType.TriggerCirclePushTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}
回传微信朋友圈数据
/**
* 回传微信朋友圈数据
* @author wechatno:tangjinjinwx
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
try {
CirclePushNoticeMessage req = vo.getContent().unpack(CirclePushNoticeMessage.class);
log.debug(JsonFormat.printer().print(req));
//把消息转发给pc端
asyncTaskService.msgSend2pc(req.getWeChatId(), EnumMsgType.CirclePushNotice, req);
//保存朋友圈信息
asyncTaskService.asyncSaveCircleMsg(req, circleService, weChatContactService);
//告诉客户端消息已收到
MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), Constant.ERROR_MSG_DECODFAIL);
}
}
发微信朋友圈
/**
* 发微信朋友圈
* @author wechatno:tangjinjinwx
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
PostSNSNewsTaskMessage.Builder bd = PostSNSNewsTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
PostSNSNewsTaskMessage req = bd.build();
//PostSNSNewsTaskMessage req = vo.getContent().unpack(PostSNSNewsTaskMessage.class);
asyncTaskService.msgSend2Phone(ctx, req.getWeChatId(), EnumMsgType.PostSNSNewsTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}
微信API接口、微信二次开发API调用相关推荐
- 微信公众号的二次开发(二 自定义菜单的创建)
在上篇<微信公众号的二次开发(一)>我们介绍了微信订阅号的一些坑, 以及微信公众平台开发的一些基本配置.下面我们继续介绍如何通过用户关注等行为.获取用户的openid. 自定义微信公众号菜 ...
- 群控sdk二次开发完整调用API(厉害了我的哥。。。)
聚播群控sdk二次开发完整调用API功能 微信加好友功能API 1.导入手机通讯录 2.手机通讯录加好友 3.加指定微信群好友 4.自动通过微信好友请求 5.手机模拟定位 6.附近人加好友 7.各种账 ...
- 微信商城开源版二次开发(二)
微信商城开源版二次开发(二) 最近想了解如何Java对接微信平台,快速搭建完整项目开发,发现网上有很对开源的这类二开源码.https://gitee.com/luozijing123/JooLun-w ...
- api接口参数加密_解决API接口开发安全性的四种方案
如今各种API接口层出不穷,一个API的好与不好有很多方面可以考量,其中"安全性"是一个API接口最基本也是最重要的一个特点.尤其是对于充值缴费类的API接口来说,如话费充值API ...
- 如何判断微信公众号是否二次开发(一)
微信公众号是否二次开发,即微信公众号是否使用了公众平台开发接口(其中主要如:自定义菜单接口.配置第三方开发服务器接口.调用外部链接等). 接下来介绍如何用手机直观的去判断微信公众号是否二次开发,主要从 ...
- 微信公众号的二次开发(三、接收事件推送获取用户信息)
在上篇<微信公众号的二次开发(二 自定义菜单的创建)>中我们介绍了自定义菜单的创建.本篇文章将介绍如何通过接收事件推送来获取用户信息.首先我们阅读官方文档: 根据官方文档的介绍 微信公众号 ...
- 使用C#中的AutoCAD .NET API对CAD二次开发,获取动态块可见性值
使用C#中的AutoCAD .NET API对CAD二次开发,获取动态块可见性值 0.效果 1.获取选择集,得到ObjectId 2.将ObjectId转换为BlockReference对象并获取其D ...
- 使用C#中的AutoCAD .NET API对CAD二次开发,获取块的属性
使用C#中的AutoCAD .NET API对CAD二次开发,获取块的属性 /// <summary> /// 获得块对象的所有属性 /// </summary> public ...
- 京东商品详情页API接口、京东商品销量API接口、京东商品列表API接口、京东APP详情API接口、京东详情API接口,京东SKU信息接口
京东商品详情页API接口.京东商品销量API接口.京东商品列表API接口.京东APP详情API接口.京东详情API接口,京东SKU信息接口,通过商品ID提取商品详情页各项数据,包含商品标题,sku i ...
最新文章
- 目标检测算法Faster R-CNN简介
- matlab中的cellstr的用法,matlab中的cell array, cellstr()和char()的用法
- 函数sigsetjump和siglongjump
- java虚拟机之二虚拟机内存结构
- MySQL · 源码分析 · change master to
- Windows学习总结(13)——各品牌电脑进入BIOS按键汇总
- 水冒泡了几度_冒泡和选择排序详解
- iotop命令监控磁盘io
- storm-基本概念
- C++day14 学习笔记
- Python学习之路day3-文件操作
- 12个有趣的HTML5实例(转)
- 几款免费好用的OCR工具
- 小说取名软件(附带截图)分享与介绍
- oracle11g怎么打开oem,oracle11g启动OEM
- 第五章:腾讯云有哪些产品
- 【线代】相似矩阵中特征根的求法:特征方程、一般方程为什么求得的特征根含义不同?
- 数据结构也不是那么没意思之中序二叉树+二叉树转伪双向循环链表
- 一分钟搞定最长公共子序列与最长公共子串的问题
- Flask入门(4):CBV和FBV