修改频道装修设置
更新时间:2024-04-22 19:18:32
接口描述
1、修改频道的页面装修设置,建议将 查询频道的页面装修设置 接口的返回值进行修改作为入参调用该接口
2、(channelId, timestamp, appId)参与sign签名,并和sign一起通过url传递,请求体参数不参与签名,通过post请求体传递【请设置请求头contentType:application/json】
3、接口支持https协议
接口URL
http://api.polyv.net/live/v4/channel/decorate/update
请求方式
POST
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
2、该接口图片资源域名暂时仅支持保利威图片域名,需通过接口上传频道所有装修图片素材进行转换
请求参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | true | String | 账号appId【详见获取密钥】 |
| timestamp | true | Long | 当前13位毫秒级时间戳,3分钟内有效 |
| sign | true | String | 签名,为32位大写的MD5值,生成签名的appSecret密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则】 |
| channelId | true | String | 频道号 |
请求体参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| chat | false | Object | 模板-装修里聊天对象【详见TemplateDecorateChat】 |
| desc | false | Object | 模板-装修中文直播介绍页对象【详见TemplateDecorateDesc】 |
| descEn | false | Object | 模板-装修英文直播介绍页对象【详见TemplateDecorateDescEn】 |
| englishSettingEnabled | false | String | 双语直播间开关,Y:开启,N:关闭 |
| lang | false | String | 语言,EN:英文,zh_CN:中文 |
| menus | false | Array | 中文菜单列表对象,此值为null或者长度为0都不更新中文菜单【详见TemplateDecorateMenu】,注意设置chat菜单,否则将不支持聊天 |
| enMenus | false | Array | 英文菜单列表对象,此值为null或者长度为0都不更新英文菜单【详见TemplateDecorateMenu】,注意设置chat菜单,否则将不支持聊天 |
| player | false | Object | 模板-装修播放器对象【详见TemplateDecoratePlayer】 |
| skin | false | String | 皮肤,black:时尚黑,red:喜庆红,blue:科技蓝,white:经典白,green:薄荷绿,golden:富贵金 |
| splash | false | Object | 模板-装修引导页对象【详见TemplateDecorateSplash】 |
| splashEnabled | false | String | 模板-装修引导页开关,Y:开启,N:关闭 |
TemplateDecorateChat参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| chatBackgroundImage | false | String | 聊天室背景图url地址,不传则不改变,传空字符串则为清空(为了保证显示效果,请上传 1125 * 1416 px 大小的图片) |
| chatBackgroundImageOpacity | false | Integer | 聊天室背景图模糊程度,0-50,数字越大越模糊,不传或者传空则不修改 |
| portraitChatBgImg | false | String | 纯视频竖屏聊天室背景图url地址,不传则不改变,传空字符串则为清空(为了保证显示效果,请上传 1125 * 2436 px 大小的图标) |
| portraitChatBgImgOpacity | false | Integer | 纯视频竖屏聊天室背景图模糊程度,0-50,数字越大越模糊,不传或者传空则不修改 |
| baseLikes | false | Integer | 累计点赞人数 (点赞基数) |
| chatOnlineNumberEnable | false | String | 在线人数开关,Y:开启,N:关闭 |
| emotionEnabled | false | String | 情绪直播间开关,情绪开关和点赞开关同时只能开启一个 |
| redPackEnabled | false | String | 红包开关,Y:开启,N:关闭 |
| sendFlowersEnabled | false | String | 点赞开关,Y:开启,N:关闭 |
| viewerSendImgEnabled | false | String | 发送图片开关,Y:开启,N:关闭 |
| welcomeEnabled | false | String | 欢迎语开关,Y:开启,N:关闭 |
| withdrawEnabled | false | String | 提现开关,Y:开启,N:关闭 |
TemplateDecorateDesc参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| iconUrl | false | String | 图标URL |
| publisher | false | String | 主持人名称,最大长度50 |
| title | false | String | 标题 -> 直播名称,最大长度100 |
TemplateDecorateDescEn参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| publisher | false | String | 主持人英文名称,最大长度50 |
| title | false | String | 直播英文名称,最大长度100 |
TemplateDecorateMenu参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| menuId | false | String | 菜单ID |
| name | true | String | 菜单名称 |
| type | true | String | 菜单类型 desc:直播介绍 chat:互动聊天 quiz:提问 qa:问答 invite:邀请海报 text:图文菜单 iframe:推广外链 tuwen:图文直播 previous:往期 buy:边看边买 members:成员列表 seat:坐席 multiMeeting:多会场 |
| content | false | String | 菜单内容 |
TemplateDecoratePlayer参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| actualPV | false | Integer | 实际累计观看次数 (真实次数) |
| backgroundUrl | false | String | PC背景图片 |
| basePV | false | Integer | 基础观看次数 |
| coverJumpUrl | false | String | 封面(暖场)跳转链接 |
| iconLink | false | String | 水印链接 |
| watermarkEnabled | false | String | 水印开关,Y:开启,N:关闭 |
| iconPosition | false | String | 水印位置,tl:左上角,tr:右上角,bl:左下角,br:右下角 |
| iconUrl | false | String | 水印图片URL |
| logoOpacity | false | Float | 水印不透明度,0:完全透明,1:完全不透明 |
| warmUpEnabled | false | String | 暖场开关 |
| warmUpImageUrl | false | String | 暖场图片地址 (直播封面图) |
TemplateDecorateSplash参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| splashImageUrl | false | String | 引导页图片 |
示例
http://api.polyv.net/live/v4/channel/decorate/update?appId=frlr1zazn3&sign=45DD8012F5392F24018CAAD344DAF090&channelId=2523307×tamp=1630984838533
请求体json参数:
{
"player": {
"backgroundUrl": "http://liveimages.videocc.net/uploadimage/20210312/chat_img_1b448be323_16155164629438.jpeg?x-oss-process=image/resize,mfit,w_1280,h_720,limit_1",
"basePV": 2000,
"iconLink": "http://www.polyv.net",
"iconPosition": "br",
"warmUpEnabled": "N",
"iconUrl": "http://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
"watermarkEnabled": "Y",
"coverJumpUrl": "",
"warmUpImageUrl": "",
"actualPV": 200,
"logoOpacity": "0.7"
},
"englishSettingEnabled": "Y",
"descEn": {
"publisher": "Polyv special host",
"title": "Polyv talk"
},
"chat": {
"emotionEnabled": "N",
"baseLikes": 800,
"viewerSendImgEnabled": "N",
"redPackEnabled": "N",
"sendFlowersEnabled": "N",
"welcomeEnabled": "N",
"chatOnlineNumberEnable": "N",
"withdrawEnabled": "N"
},
"skin": "red",
"splashEnabled": "Y",
"menus": [
{
"type": "desc"
},
{
"type": "chat"
}
],
"enMenus": [
{
"name": "desc",
"type": "desc"
},
{
"name": "talk",
"type": "chat"
}
],
"lang": "zh_CN",
"splash": {
"splashImageUrl": ""
},
"desc": {
"publisher": "polyv专用主持人",
"iconUrl": "http://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
"title": "polyv宣讲会"
}
}
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 响应状态码,200为成功返回,非200为失败 |
| status | String | 响应结果,由业务决定,成功返回success,失败返回error |
| success | Boolean | 响应结果,由业务决定,成功返回true,失败返回false |
| data | Object | 成功响应时返回频道详细信息 |
| error | Object | 状态码非200时的错误信息【详见Error字段说明】 |
| requestId | String | 请求ID,每次请求生成的唯一的 UUID,仅可用于排查、调试,不应该和业务挂上钩 |
Error参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 错误代码,用于确定具体的错误原因 |
| desc | String | 错误描述,与 error.code 对应 |
Java请求示例
快速接入基础代码请下载相关依赖源码, 点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 LiveSignUtil.java 都包含在下载文件中。
强烈建议您使用直播Java SDK完成API的功能对接,直播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。
@Test
public void updateChannelDecorate() throws IOException, NoSuchAlgorithmException {
String appId = super.appId;
String appSecret = super.appSecret;
String timestamp = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://api.polyv.net/live/v4/channel/decorate/update";
//http 调用逻辑
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
requestMap.put("channelId", "2523307");
Map<String, Object> chatMap = new HashMap<>();
chatMap.put("baseLikes",800);
chatMap.put("chatOnlineNumberEnable","N");
chatMap.put("emotionEnabled","N");
chatMap.put("redPackEnabled","N");
chatMap.put("sendFlowersEnabled","N");
chatMap.put("viewerSendImgEnabled","N");
chatMap.put("welcomeEnabled","N");
chatMap.put("withdrawEnabled","N");
Map<String, Object> descMap = new HashMap<>();
//图标URL
descMap.put("iconUrl","http://liveimages.videocc.net/assets/wimages/pc_images/logo.png");
descMap.put("publisher","polyv专用主持人");
descMap.put("title","polyv宣讲会");
Map<String, Object> descEnMap = new HashMap<>();
descEnMap.put("publisher","Polyv special host");
descEnMap.put("title","Polyv talk");
Map<String, Object> enMenusMap1 = new HashMap<>();
enMenusMap1.put("name","desc");
enMenusMap1.put("type","desc");
Map<String, Object> enMenusMap2 = new HashMap<>();
enMenusMap2.put("name","talk");
enMenusMap2.put("type","chat");
List<Map<String,Object>> enMenusList = new ArrayList<>();
enMenusList.add(enMenusMap1);enMenusList.add(enMenusMap2);
Map<String, Object> chMenusMap1 = new HashMap<>();
chMenusMap1.put("name","直播间描述");
chMenusMap1.put("type","desc");
Map<String, Object> chMenusMap2 = new HashMap<>();
chMenusMap2.put("name","聊天");
chMenusMap2.put("type","chat");
List<Map<String,Object>> chMenusList = new ArrayList<>();
chMenusList.add(chMenusMap1);chMenusList.add(chMenusMap2);
Map<String, Object> playMap = new HashMap<>();
playMap.put("actualPV",200);
playMap.put("backgroundUrl","http://liveimages.videocc.net/uploadimage/20210312/chat_img_1b448be323_16155164629438.jpeg?x-oss-process=image/resize,mfit,w_1280,h_720,limit_1");
playMap.put("basePV",2000);
playMap.put("coverJumpUrl","");
playMap.put("watermarkEnabled","Y");
playMap.put("iconLink","http://www.polyv.net");
playMap.put("iconPosition","br");
playMap.put("iconUrl","http://liveimages.videocc.net/assets/wimages/pc_images/logo.png");
playMap.put("logoOpacity","0.7");//水印不透明度
playMap.put("warmUpEnabled","N");
playMap.put("warmUpImageUrl","");
Map<String, Object> splashMap = new HashMap<>();
splashMap.put("splashImageUrl","");
Map<String, Object> bodyMap = new HashMap<>();
bodyMap.put("chat", chatMap);
bodyMap.put("desc", descMap);
bodyMap.put("descEn", descEnMap);
bodyMap.put("enMenus", enMenusList);
bodyMap.put("menus", chMenusList);
bodyMap.put("englishSettingEnabled", "Y");//双语直播间开关
bodyMap.put("lang", "zh_CN");
bodyMap.put("player", playMap);
bodyMap.put("skin", "red");
bodyMap.put("splash", splashMap);
bodyMap.put("splashEnabled", "Y");
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
String body = JSON.toJSONString(bodyMap);
url = HttpUtil.appendUrl(url, requestMap);
String response = HttpUtil.postJsonBody(url,body,null);
log.info("测试修改频道装修设置,返回值:{}", response);
}
响应示例
成功示例
{
"code": 200,
"status": "success",
"requestId": "dc7ae621ef8e4f4a8e4976833f1dbbd4.69.16309852981551185",
"data": null,
"success": true
}
异常示例
{
"code": 400,
"status": "error",
"requestId": "4081dbac03e6441e8bdd301d8feee5a2.117.16360829141876029",
"error": {
"code": 30004,
"desc": "找不到频道"
},
"success": false
}
