个人微信api接口java调用源代码

简介: 个人微信api接口java调用源代码

个人微信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);
    }
}


相关文章
|
5天前
|
数据采集 Java API
java接口防爬虫
7月更文挑战第4天
|
2天前
|
前端开发 JavaScript 安全
|
11天前
|
负载均衡 安全 Java
Java中的服务治理与API网关实现
Java中的服务治理与API网关实现
|
11天前
|
监控 安全 Java
在Java中集成第三方API调用的最佳实践
在Java中集成第三方API调用的最佳实践
|
11天前
|
并行计算 Java 大数据
Java中的函数式接口与流式编程
Java中的函数式接口与流式编程
|
9天前
|
Java API
Java面试题:说明Lambda表达式在Java中的应用,以及函数式接口的概念和作用。
Java面试题:说明Lambda表达式在Java中的应用,以及函数式接口的概念和作用。
11 0
|
9天前
|
并行计算 Java 数据挖掘
Java面试题:解释Java中的Stream API及其操作
Java面试题:解释Java中的Stream API及其操作
17 0
|
9天前
|
网络协议 Java
Java面试题:什么是Java中的接口?与抽象类有什么区别?
Java面试题:什么是Java中的接口?与抽象类有什么区别?
10 0
|
11天前
|
Java API
如何利用Java Stream API简化集合操作?
如何利用Java Stream API简化集合操作?
|
2月前
|
开发框架 JSON .NET
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
185 0