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);
        }
    }
  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/wuliaokankan/p/14137107.html
Copyright © 2011-2022 走看看