程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(2)

腾讯云---即时通信IM---微信小程序直播带货总结(三)

发布于2021-05-29 21:42     阅读(782)     评论(0)     点赞(8)     收藏(5)


访问出现这个问题的,那恭喜你中奖了,跟我一样,O(∩_∩)O哈哈~,如果没有出现的,说明企鹅那边已经改好了。

在这里插入图片描述

如果node.js没问题就可以运用了,下面是我自己使用java的,然后小程序直播来调接口。

一、获取直播间列表 例子

	/**
     * 获取直播间列表
     * @return List<Room>
     * 		Room(
     * 		id 
     * 		name 直播名称
     * 		cover 直播封面图
     * 		covers 直播封面图 小图
     * 		liveFlow   直播流
     * 		liveBroadcast 拉流(播放流)
     * 		liveVideo	直播回放
     * 		imGroupId 群组id
     * 		)		 
     */
    @RequestMapping(value = "/getRoomList",method = RequestMethod.GET,produces = "application/json;charset=UTF-8")
    public String getRoomList(){
        List<Room> roomList = iLiveService.getRoomList();
        return success(roomList);
    }

二、 获取sdk 用户信息 例子

/**
     * 获取 登陆SDK配置信息
     * @return sdkAppID  sdkAppId
     *          userID 用户openId
     *          userName 用户昵称
     *          userAvatar 用户头像
     *          userSig   userSig签名
     */
    @RequestMapping(value = "/getWeChatLiveSDK",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public String getWeChatLiveSDK(){
        //获取用户登录签名
        String userSig = LiveUtil.getUserSig(getUser().getWx_mini_openid());
        Map<String, Object> map = new HashMap<>();
        map.put("sdkAppID", Setting.getValue("WECHATPAY.SDK_APPID"));
        map.put("userID", getUser().getWx_mini_openid());
        map.put("userName", getUser().getNickname());
        map.put("userAvatar", getUser().getImageUrl());
        map.put("userSig", userSig);
        return success(map);
    }

三、用户给主播点赞 例子

/**
     * 用户给主播点赞
     * 最好用mq处理
     * @param wx_mini_openid 主播的openid
     * @return success
     */
    @RequestMapping(value = "/like",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public String addLike(String wx_mini_openid){
    	/*wx_mini_openid 主播的openid不能为空*/
        if (wx_mini_openid == null){
            return fail("系统异常,请退出重试");
        }
        /* getUser().getWx_mini_openid() 用户的openId  */      
        try {
        	messageHelper.send("likeAndSendGiftQueue","like,"+getUser().getWx_mini_openid()+","+wx_mini_openid);
		}catch(Exception e){
			logger.info("给主播点赞异常",e);
			return fail("给主播点赞失败");
		}
        
        return success("给主播点赞");
    }

四、关注主播 例子

	/**
     * 关注主播
     * @param wx_mini_openid 主播的openId
     * @return
     */
    @RequestMapping(value = "/follow",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public String follow(String wx_mini_openid){
        if (wx_mini_openid == null){
            return fail("系统异常,请退出重试");
        }
        Follow follow = new Follow();
        follow.setFrom_id(getUser().getWx_mini_openid());  //用户openId
        follow.setTo_id(wx_mini_openid);	//主播openId
        try {
			boolean b = iLiveService.addFollow(follow);
	        if(b){
	        	return success("关注主播成功");
			}else {
				return fail("关注主播失败");
			}
		}catch(Exception e){
			logger.info("关注主播接口异常",e);
			return fail("系统异常,请稍后重试");
		} 
    }

五、取消关注主播 例子

	/**
     * 取消关注主播
     * @param wx_mini_openid 主播openId
     * @return
     */
    @RequestMapping(value = "/unFollow",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public String unFollow(String wx_mini_openid){
        if (wx_mini_openid == null){
            return fail("系统异常,请退出重试");
        }
        Follow follow = new Follow();
        follow.setFrom_id(getUser().getWx_mini_openid());  //用户openId
        follow.setTo_id(wx_mini_openid);	//主播openId
        try{
        	boolean b = iLiveService.deleteFollow(follow);
        	if(b){
	        	return success("取消关注主播成功");
			}else {
				return fail("取消关注主播失败");
			}
        }catch(Exception e){
            logger.info("取消关注主播接口异常",e);
			return fail("系统异常,请稍后重试");
        }
    }

六、获取礼物列表 例子 (这个接口腾讯云那边的demo没写的,他们是直接把礼物写在前端,也没有例子,如果是想写在前端就不用写这个接口)

/**
     * 获取礼物列表
     * @return
     */
    @RequestMapping(value = "/getGiftList",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public String getGiftList(){
        try {
        	List<Gift> giftList = iLiveService.getGiftList();
        	return success(giftList);
        }catch(Exception e){
        	logger.info("获取礼物列表接口异常",e);
			return fail("系统异常,请稍后重试");
        }
    }

七、用户给主播送礼物 例子

	/**
     * 用户给主播送礼物
     * @param wx_mini_openid 主播openId
     * @param giftId  礼物id
     * @param count 数量
     * @return
     */
    @RequestMapping(value = "/sendGift",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public String sendGift(String wx_mini_openid,Integer giftId,Integer count){
        if (wx_mini_openid == null || giftId == null){
            return fail("系统异常,请退出重试");
        }
        if(count == null){
        	count = 1;
        }
        try{
        	messageHelper.send("likeAndSendGiftQueue","sendGift,"+getUser().getWx_mini_openid()+","+wx_mini_openid+","+giftId+","+count);
        	return success("送礼物成功");
		}catch(Exception e){
			logger.info("用户给主播送礼物接口异常",e);
			return fail("系统异常,请稍后重试");
		}
    }

八、主播开关播

	/**
     * 主播开播,主播关播
     * @param liveId 直播间Id
     * @param status 1:主播开播 2:主播关播
     * @return
     */
    @RequestMapping(value = "/openOrCloseLive",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public String openLive(Integer liveId,String status){
        try {
        	// 获取直播间的信息
            LiveLessonTable liveLessonTable = iLiveService.getLiveLessonTableById(liveId);
            if (liveLessonTable==null){
                return fail("直播间异常,请重新进入");
            }
            Map<String, Object> param = new HashMap<>();
            param.put("GroupId", liveLessonTable.getImGroupId()); //群组Id
            List<Map<String,Object>> mapList = new ArrayList<>();
            Map<String,Object> map = new HashMap<>();
            map.put("Key","room_status"); //群自定义字段 直播间状态
            map.put("Value", status==null?"1":status);  //自定义字段的值 1:主播开播 2:主播关播
            mapList.add(map);
            param.put("AppDefinedData", mapList);  //自定义字段

            //更新直播状态  修改群组资料
            LiveImRepBody liveImRepBody = iLiveService.updateWeChantGroup(WeChantLiveUrl.MODIFY_GROUP_BASE_INFO, param);
            if ("OK".equals(liveImRepBody.getActionStatus())){
                return success("更新直播状态成功");
            }else {
                return fail("更新直播状态失败");
            }
        }catch (Exception e){
            logger.info("更新主播间状态接口异常",e);
            return fail("系统异常,请稍后重试");
        }
    }

原文链接:https://blog.csdn.net/weixin_44343477/article/details/116240268



所属网站分类: 技术文章 > 博客

作者:skdk

链接:http://www.javaheidong.com/blog/article/207540/32bdb77f87c266941568/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

8 0
收藏该文
已收藏

评论内容:(最多支持255个字符)