修改頻道裝潢設定
更新時間: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
}
