zoukankan      html  css  js  c++  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);
        }
    }
  • 相关阅读:
    如何通过 Vue-Cli3
    Vue简单了解
    年后跳槽如何准备?
    2016年1月-前端开发月刊
    前端如何正确选择offer,到底选哪个?
    前端应聘要准备些什么样子的作品?
    如何看待豪情的前端群的群规?
    前端工程师如何打发闲余时光?
    页面重构时的注意事项
    我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
  • 原文地址:https://www.cnblogs.com/wuliaokankan/p/14137107.html
Copyright © 2011-2022 走看看