webMenu
1、設定自訂選單直播介紹
描述
设置自定义菜单中用户设置菜单的直播介绍
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channelSetting/%s/%s/set-menu
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testUpdateChannelMenu() throws Exception, NoSuchAlgorithmException {
LiveUpdateChannelMenuRequest liveUpdateChannelMenuRequest = new LiveUpdateChannelMenuRequest();
Boolean liveUpdateChannelMenuResponse;
try {
liveUpdateChannelMenuRequest.setChannelId(createChannel())
.setMenuType("desc")
.setContent("<html><body><h1>hello world</h1></body></html>");
liveUpdateChannelMenuResponse = new LiveWebMenuServiceImpl().updateChannelMenu(
liveUpdateChannelMenuRequest);
Assert.assertNotNull(liveUpdateChannelMenuResponse);
if (liveUpdateChannelMenuResponse) {
//to do something ......
log.debug("测试设置自定义菜单直播介绍成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 Boolean 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| userId | false | String | POLYV 使用者 ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| channelId | true | String | 頻道號 |
| content | true | String | 直播介紹的內容(此處可填寫 HTML 頁面的相關內容,如增加圖片、增加文字樣式等) |
| menuType | true | String | 選單類型,目前僅支援取值為 desc |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true 為設定成功,false 為設定失敗
2、查詢頻道的選單資訊
描述
获取频道的菜单信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/menu/list
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListChannelMenu() throws Exception, NoSuchAlgorithmException {
LiveListChannelMenuRequest liveListChannelMenuRequest = new LiveListChannelMenuRequest();
LiveListChannelMenuResponse liveListChannelMenuResponse;
try {
liveListChannelMenuRequest.setChannelId(createChannel());
liveListChannelMenuResponse = new LiveWebMenuServiceImpl().listChannelMenu(liveListChannelMenuRequest);
Assert.assertNotNull(liveListChannelMenuResponse);
if (liveListChannelMenuResponse != null) {
//to do something ......
log.debug("测试查询频道的菜单信息成功,{}", JSON.toJSONString(liveListChannelMenuResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 LiveListChannelMenuResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號,不傳為取得全域設定 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelMenus | Array | 頻道的選單資訊【詳見ChannelMenu 參數描述】 |
ChannelMenu 參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| menuId | String | 選單 ID |
| menuType | String | 選單類型,desc 為直播介紹,chat 為聊天室,quiz 為諮詢提問,iframe 為推廣外鏈,text 為自訂圖文選單 |
| name | String | 選單名稱 |
| ordered | Integer | 排序 |
| content | String | 內容 |
3、新增頻道選單
描述
添加一个频道菜单
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/menu/add
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、如果 desc 類型的選單已經存在,會拋出「menu already exist」異常。
單元測試
@Test
public void testAddChannelMenu() throws Exception, NoSuchAlgorithmException {
LiveAddChannelMenuRequest liveAddChannelMenuRequest = new LiveAddChannelMenuRequest();
LiveAddChannelMenuResponse liveAddChannelMenuResponse;
try {
liveAddChannelMenuRequest.setChannelId(createChannel())
.setName("推广2")
.setType("iframe")
.setContent("http://live.polyv.net")
.setLang("zh_CN");
liveAddChannelMenuResponse = new LiveWebMenuServiceImpl().addChannelMenu(liveAddChannelMenuRequest);
Assert.assertNotNull(liveAddChannelMenuResponse);
if (liveAddChannelMenuResponse != null) {
//to do something ......
log.debug("测试添加频道菜单成功,{}", JSON.toJSONString(liveAddChannelMenuResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 LiveAddChannelMenuResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| name | true | String | 選單名稱 |
| type | true | String | 選單類型。desc:直播介紹;chat:互動聊天;quiz:諮詢提問;text:圖文選單;iframe:推廣外鏈;qa:問答;buy:商品列表;invite:邀請榜 |
| content | true | String | 選單內容。當選單類型為直播介紹、圖文選單時,該值為選單的內容。當選單類型為外鏈推廣時,該值為外鏈連結位址。 |
| lang | false | String | 選單語言類型,預設 zh_CN zh_CN:中文 EN:英文 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| menuId | String | 選單 ID |
| menuType | String | 選單類型。desc:直播介紹;chat:互動聊天;quiz:諮詢提問;text:圖文選單;iframe:推廣外鏈;qa:問答;buy:商品列表;invite:邀請榜; |
| name | String | 選單名稱 |
| ordered | String | 選單順序,值越小,越靠前。新新增的選單預設位於最後。 |
| content | String | 選單內容。當選單類型為直播介紹、圖文選單時,該值為選單的內容。當選單類型為外鏈推廣時,該值為外鏈連結位址。 |
| lang | String | 選單語言類型 zh_CN:中文 EN:英文 |
4、設定頻道選單排序
描述
设置直播频道的菜单的顺序
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/menu/update-rank
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、頻道選單 ID 列表,必須是完整的列表(不能多也不能少)
單元測試
@Test
public void testUpdateChannelMenuSort() throws Exception, NoSuchAlgorithmException {
LiveUpdateChannelMenuSortRequest liveUpdateChannelMenuSortRequest = new LiveUpdateChannelMenuSortRequest();
Boolean liveUpdateChannelMenuSortResponse;
try {
String channelId = super.createChannel();
List<String> menuIds = listChannelMenuIds(channelId);
Collections.shuffle(menuIds);
String menuIdsStr = StringUtils.join(menuIds.toArray(), ",");
liveUpdateChannelMenuSortRequest.setChannelId(channelId)
.setMenuIds(menuIdsStr)
.setLang("zh_CN");
liveUpdateChannelMenuSortResponse = new LiveWebMenuServiceImpl().updateChannelMenuSort(
liveUpdateChannelMenuSortRequest);
Assert.assertNotNull(liveUpdateChannelMenuSortResponse);
if (liveUpdateChannelMenuSortResponse != null) {
//to do something ......
log.debug("测试设置频道菜单排序成功,{}", JSON.toJSONString(liveUpdateChannelMenuSortResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 Boolean 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| menuIds | true | String | 頻道選單 ID 列表,必須是完整的列表(不能多也不能少),表示按該順序排列選單 |
| lang | false | String | 選單語言類型 預設 zh_CN 中文、EN 英文 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
null
5、設定指定選單 id 的頻道選單資訊
描述
设置指定菜单id的频道菜单信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/menu/update
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、互動聊天或諮詢提問的選單 ID 不允許設定
單元測試
@Test
public void testUpdateChannelMenuInfo() throws Exception, NoSuchAlgorithmException {
LiveUpdateChannelMenuInfoRequest liveUpdateChannelMenuInfoRequest = new LiveUpdateChannelMenuInfoRequest();
Boolean liveUpdateChannelMenuInfoResponse;
try {
//可自行通过 查询频道的菜单信息 获取菜单id
String menuId = super.getDescMenuId();
liveUpdateChannelMenuInfoRequest.setMenuId(menuId)
.setContent("Mysql 知识精讲(Junit勿删)")
.setLang("zh_CN");
liveUpdateChannelMenuInfoResponse = new LiveWebMenuServiceImpl().updateChannelMenuInfo(
liveUpdateChannelMenuInfoRequest);
Assert.assertNotNull(liveUpdateChannelMenuInfoResponse);
if (liveUpdateChannelMenuInfoResponse != null) {
//to do something ......
log.debug("测试设置指定菜单id的频道菜单信息成功,{}", JSON.toJSONString(liveUpdateChannelMenuInfoResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 Boolean 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| menuId | true | String | 選單 id(互動聊天或諮詢提問的選單 ID 不允許設定) |
| content | true | String | 選單的內容 |
| lang | false | String | 選單語言類型 預設 zh_CN 中文、EN 英文 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
null
6、刪除頻道選單
描述
删除指定的频道菜单,支持批量
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/menu/delete
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testDeleteChannelMenu() throws Exception, NoSuchAlgorithmException {
LiveDeleteChannelMenuRequest liveDeleteChannelMenuRequest = new LiveDeleteChannelMenuRequest();
Boolean liveDeleteChannelMenuResponse;
try {
liveDeleteChannelMenuRequest.setMenuIds("db1663823d,d9ba333cdc");
liveDeleteChannelMenuResponse = new LiveWebMenuServiceImpl().deleteChannelMenu(
liveDeleteChannelMenuRequest);
Assert.assertTrue(liveDeleteChannelMenuResponse);
if (liveDeleteChannelMenuResponse) {
//to do something ......
log.debug("测试删除频道菜单成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 Boolean 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| menuIds | true | String | 選單 id,指定多個以英文逗號, 分隔 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true 為刪除成功,false 為刪除失敗
7、設定提問功能顯示開關
描述
可以开启或关闭咨询提问功能菜单
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/menu/%s/update-consulting-enabled
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testSetConsultingEnabled() throws Exception, NoSuchAlgorithmException {
LiveSetConsultingEnabledRequest liveSetConsultingEnabledRequest = new LiveSetConsultingEnabledRequest();
Boolean liveSetConsultingEnabledResponse;
try {
liveSetConsultingEnabledRequest.setChannelId(createChannel())
.setEnabled("N");
liveSetConsultingEnabledResponse = new LiveWebMenuServiceImpl().setConsultingEnabled(
liveSetConsultingEnabledRequest);
Assert.assertTrue(liveSetConsultingEnabledResponse);
if (liveSetConsultingEnabledResponse) {
//to do something ......
log.debug("测试设置提问功能显示开关成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 Boolean 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| enabled | true | String | 諮詢提問開關 Y:開啟,N:關閉 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官 |
