个人微信api接口,微信sdk

1、微信好友收发消息

/**

* 给微信好友发消息

* @author wechatno:tangjinjinwx

* @blog http://www.wlkankan.cn

*/

@Async

public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo, String contentJsonStr) {

try {

log.debug(contentJsonStr);

TalkToFriendTaskMessage.Builder bd = TalkToFriendTaskMessage.newBuilder();

JsonFormat.parser().merge(contentJsonStr, bd);

TalkToFriendTaskMessage req = bd.build();

// 消息记录数据库

asyncTaskService.savePcMessage(req);

// 将消息转发送给手机客户端

asyncTaskService.msgSend2Phone(ctx, req.getWeChatId(), EnumMsgType.TalkToFriendTask, 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 {

FriendTalkNoticeMessage req = vo.getContent().unpack(FriendTalkNoticeMessage.class);

log.debug(JsonFormat.printer().print(req));

log.debug(LocalDateTime.now()+" 微信好友发来聊天消息 对应的线程名: "+Thread.currentThread().getName());

//拦截消息

asyncTaskService.msgAopTask(ctx,req,vo.getAccessToken(), vo.getId());

//消息转发到pc端

asyncTaskService.msgSend2pc(req.getWeChatId(), EnumMsgType.FriendTalkNotice, req);

// 告诉客户端消息已收到

MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);

WxAccountInfo account = weChatAccountService.findWeChatAccountInfoByWeChatId(req.getWeChatId());

//消息记录数据库

if (null != account){

asyncTaskService.saveMessage(account, req);

}

} catch (Exception e) {

e.printStackTrace();

MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage());

}

}

2、触发手机推送微信好友列表及返回

/**

* 触发手机推送微信好友列表

* @author wechatno:tangjinjinwx

* @blog http://www.wlkankan.cn

*/

@Async

public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {

try {

log.debug(contentJsonStr);

TriggerFriendPushTaskMessage.Builder bd = TriggerFriendPushTaskMessage.newBuilder();

JsonFormat.parser().merge(contentJsonStr, bd);

TriggerFriendPushTaskMessage req = bd.build();

//TriggerFriendPushTaskMessage req = vo.getContent().unpack(TriggerFriendPushTaskMessage.class);

//将消息转发送给手机客户端

asyncTaskService.msgSend2Phone(ctx, req.getWeChatId(), EnumMsgType.TriggerFriendPushTask, 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 {

FriendPushNoticeMessage req = vo.getContent().unpack(FriendPushNoticeMessage.class);

log.debug(JsonFormat.printer().print(req));

// 把消息转发给pc端

asyncTaskService.msgSend2pc(req.getWeChatId(), EnumMsgType.FriendPushNotice, req);

// 异步保存到数据库

asyncTaskService.friendListSave(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);

}

}

3、触发推送微信群聊列表及返回

/**

* 触发推送微信群聊列表

* @author wechatno:tangjinjinwx

* @blog http://www.wlkankan.cn

*/

@Async

public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo, String contentJsonStr) {

try {

log.debug(contentJsonStr);

TriggerChatRoomPushTaskMessage.Builder bd = TriggerChatRoomPushTaskMessage.newBuilder();

JsonFormat.parser().merge(contentJsonStr, bd);

TriggerChatRoomPushTaskMessage req = bd.build();

// 将消息转发送给手机客户端

asyncTaskService.msgSend2Phone(ctx, req.getWeChatId(), EnumMsgType.TriggerChatroomPushTask, 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 {

ChatRoomPushNoticeMessage req = vo.getContent().unpack(ChatRoomPushNoticeMessage.class);

log.debug(JsonFormat.printer().print(req));

asyncTaskService.msgSend2pc(req.getWeChatId(), EnumMsgType.ChatroomPushNotice, req);

asyncTaskService.qunListSave(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);

}

}

4、推送微信朋友圈、发朋友圈

/**

* 触发推送朋友圈列表

* @author wechatno:tangjinjinwx

* startTime传秒

* @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);

}

}

5、加好友及通过好友请求

/**

* 微信自动添加好友

* @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){

String resp ="fail";

resp = 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);

}

}

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐