channelViewdata
1、取得頻道特定時間範圍內的歷史最高並發人數
描述
获取频道一定时间范围之内的历史最高并发人数,粒度可以支持到分钟
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/statistics/get-max-history-concurrent
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetMaxChannelHistoryConcurrent() throws Exception, NoSuchAlgorithmException {
LiveChannelMaxHistoryConcurrentRequest liveChannelMaxHistoryConcurrentRequest =
new LiveChannelMaxHistoryConcurrentRequest();
Integer liveChannelMaxHistoryConcurrentResponse;
try {
long nowTime = System.currentTimeMillis();
long startTime = nowTime - 30 * 24 * 60 * 60 * 1000l;
liveChannelMaxHistoryConcurrentRequest.setChannelId(createChannel())
.setStartTime(super.getDate(startTime))
.setEndTime(super.getDate(nowTime));
liveChannelMaxHistoryConcurrentResponse =
new LiveChannelViewdataServiceImpl().getMaxChannelHistoryConcurrent(
liveChannelMaxHistoryConcurrentRequest);
Assert.assertNotNull(liveChannelMaxHistoryConcurrentResponse);
if (liveChannelMaxHistoryConcurrentResponse != null) {
//to do something ......
log.debug("测试获取频道一定时间范围之内的历史最高并发人数成功,并发人数为:{}", liveChannelMaxHistoryConcurrentResponse);
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 Integer 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startTime | true | Date | 開始時間 |
| endTime | true | Date | 結束時間 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
返回時間區間內的最高並發人數
2、分頁取得連線麥克風情況使用詳情
描述
分页获取连麦情况使用详情
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/statistics/mic/list
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListChannelMic() throws Exception, NoSuchAlgorithmException {
LiveListChannelMicRequest liveListChannelMicRequest = new LiveListChannelMicRequest();
LiveListChannelMicResponse liveListChannelMicResponse;
try {
liveListChannelMicRequest.setChannelIds("1951952,1958888")
.setStartDay(getDate(2020, 1, 1))
.setEndDay(getDate(2020, 11, 11));
liveListChannelMicResponse = new LiveChannelViewdataServiceImpl().listChannelMic(liveListChannelMicRequest);
Assert.assertNotNull(liveListChannelMicResponse);
if (liveListChannelMicResponse != null) {
//to do something ......
log.debug("测试分页获取连麦情况使用详情成功,{}", JSON.toJSONString(liveListChannelMicResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 LiveListChannelMicResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名稱 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelIds | 否 | String | 頻道號,使用英文逗號分隔,例如:100000,100001 |
| startDay | 否 | Date | 開始時間,格式:yyyy-MM-dd |
| endDay | 否 | Date | 結束時間,格式:yyyy-MM-dd |
| currentPage | 否 | Integer | 頁碼,預設為1【對應 API 文件的 page 欄位】 |
| pageSize | 否 | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料【對應 API 文件的 size 欄位】 |
| appId | 否 | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | 否 | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 列表資訊【詳見ChannelMic參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁面【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
ChannelMic參數描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| userId | String | 使用者 userId |
| channelId | String | 頻道號碼 |
| currentDay | Date | 當天,例如:2019-10-25 |
| history | Integer | 使用連線分鐘數,單位:分鐘 |
3、分頁查詢頻道觀看紀錄
描述
分页查询频道观看日志
接口地址(仅做说明使用):https://api.polyv.net/live/v2/statistics/%s/viewlog
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、如果要查詢一段時間的記錄,可以傳入:startTime、endTime(startTime 和 endTime 必須在同一個月內);如果要查詢某一天的記錄,則傳入 currentDay。
3、startTime、endTime 和 currentDay 不能都不傳
4、若同時傳遞 currentDay 與 startTime、endTime,將採用 startTime、endTime 的值
單元測試
@Test
public void testListChannelViewlog() throws Exception, NoSuchAlgorithmException {
LiveListChannelViewlogRequest liveListChannelViewlogRequest = new LiveListChannelViewlogRequest();
LiveListChannelViewlogResponse liveListChannelViewlogResponse;
try {
liveListChannelViewlogRequest.setChannelId(createChannel()).setCurrentDay(getDate(2020, 11, 3));
liveListChannelViewlogResponse = new LiveChannelViewdataServiceImpl().listChannelViewlog(
liveListChannelViewlogRequest);
Assert.assertNotNull(liveListChannelViewlogResponse);
if (liveListChannelViewlogResponse != null) {
//to do something ......
log.debug("测试分页查询频道观看日志成功,{}", JSON.toJSONString(liveListChannelViewlogResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確時,回傳 LiveListChannelViewlogResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因:invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| currentDay | false | Date | 查詢日期,格式:yyyy-MM-dd |
| startTime | false | Date | 查詢開始時間 |
| endTime | false | Date | 查詢結束時間 |
| viewerId | false | String | 觀看用戶ID【對應API文件的param1欄位】 |
| viewerName | false | String | 觀看用戶名稱【對應API文件的param2欄位】 |
| logType | false | String | 觀看日誌類型,取值 vod 表示觀看重播,取值live 表示直播【對應API文件的param3欄位】 |
| viewLogType | false | String | 直播點播日誌類型,預設為live vod:查詢點播列表觀看資料 live:查詢直播或重播列表觀看資料 |
| sessionIds | false | String | 場次ID,多個場次使用,分隔 |
| param4 | false | String | 自訂參數 |
| currentPage | false | Integer | 頁數,預設為1【對應API文件的page欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| appId | false | String | POLYV用戶APP_ID,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV用戶APP_SECRET,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 頻道觀看日誌【詳見LiveChannelViewlog參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁面【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
LiveChannelViewlog參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| playId | String | 表示此次播放動作的ID |
| userId | String | 使用者ID |
| channelId | String | 頻道號 |
| playDuration | Integer | 播放時長,單位:秒 |
| stayDuration | Integer | 停留時長,單位:秒 |
| flowSize | Long | 流量大小 |
| sessionId | String | 直播的場次ID |
| viewerId | String | 觀眾ID【對應API文件的param1欄位】 |
| viewerName | String | 觀眾名稱,最多支援64個字元【對應API文件的param2欄位】 |
| logType | String | 觀看類型:取值vod 表示觀看重播,取值live 表示直播【對應API文件的param3欄位】 |
| param4 | String | POLYV系統參數 |
| param5 | String | POLYV系統參數 |
| ipAddress | String | IP位址 |
| country | String | 國家 |
| province | String | 省份 |
| city | String | 城市 |
| isp | String | ISP運營商 |
| referer | String | 播放影片頁面位址 |
| userAgent | String | 使用者裝置 |
| operatingSystem | String | 作業系統 |
| browser | String | 瀏覽器 |
| isMobile | String | 是否為行動端,Y:行動端,N:非行動端 |
| currentDay | Date | 日誌查詢日期 |
| createdTime | Date | 日誌建立日期,近似觀眾觀看直播的開始時間,會比實際觀看時間略慢一點點,觀看時長建議使用 createdTime + playDuration 取得 |
| lastModified | Date | 日誌更新日期 |
| firstActiveTime | Date | 進入時間 |
| lastActiveTime | Date | 退出時間 |
4、查詢多個頻道彙整的統計資料
描述
查询多个频道汇总的统计数据
接口地址(仅做说明使用):https://api.polyv.net/live/v2/statistics/%s/channel_summary
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListChannelSummary() throws Exception, NoSuchAlgorithmException {
LiveListChannelSummaryRequest liveListChannelSummaryRequest = new LiveListChannelSummaryRequest();
LiveListChannelSummaryResponse liveListChannelSummaryResponse;
try {
liveListChannelSummaryRequest.setStartDate(getDate(2020, 01, 01))
.setEndDate(getDate(2020, 11, 11))
.setChannelIds("1951952,1958888");
liveListChannelSummaryResponse = new LiveChannelViewdataServiceImpl().listChannelSummary(
liveListChannelSummaryRequest);
Assert.assertNotNull(liveListChannelSummaryResponse);
if (liveListChannelSummaryResponse != null) {
//to do something ......
log.debug("测试查询多个频道汇总的统计数据成功,{}", JSON.toJSONString(liveListChannelSummaryResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 LiveListChannelSummaryResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求返回資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| userId | false | String | POLYV 用戶 ID,多帳號調用時此參數必填(即呼叫了 initMultiAccount() 設定多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| startDate | true | Date | 查詢的開始日期,格式為 yyyy-MM-dd |
| endDate | true | Date | 查詢的結束日期,格式為 yyyy-MM-dd |
| channelIds | false | String | 要查詢的頻道號,不提交預設為查詢所有頻道,多個頻道號以英文逗號「,」分開,如:105420,104400 |
| appId | false | String | POLYV 用戶 APP_ID,多帳號調用時此參數必填(即呼叫了 initMultiAccount() 設定多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 用戶 APP_SECRET,多帳號調用時此參數必填(即呼叫了 initMultiAccount() 設定多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| channelSummarys | Array | 統計資料【詳見ChannelSummary參數描述】 |
ChannelSummary參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelId | String | 頻道號 |
| name | String | 頻道名稱 |
| pcPlayDuration | Integer | PC端播放時長,單位:分鐘 |
| pcFlowSize | Long | PC端播放流量,單位為Byte |
| pcVideoView | Integer | PC影片播放量 |
| pcUniqueViewer | Integer | PC端唯一觀眾數 |
| mobilePlayDuration | Long | 行動端播放時長,單位:分鐘 |
| mobileFlowSize | Long | 行動端播放流量,單位為Byte |
| mobileVideoView | Integer | 行動端播放量 |
| mobileUniqueViewer | Integer | 行動端唯一觀眾數 |
| livePcPlayDuration | Integer | PC直播播放時長,單位為分鐘 |
| playbackPcPlayDuration | Long | PC回放播放時長,單位為分鐘 |
| liveMobilePlayDuration | Integer | 行動端直播播放時長,單位為分鐘 |
| playbackMobilePlayDuration | Long | 行動端回放播放時長,單位為分鐘 |
| unknownPcPlayDuration | Integer | PC其他播放時長,單位為分鐘 |
| unknownMobilePlayDuration | Integer | 行動端其他播放時長,單位為分鐘 |
5、查詢多個頻道的即時線上人數
描述
查询多个频道的实时在线人数
接口地址(仅做说明使用):https://api.polyv.net/live/v2/statistics/get-realtime-viewers
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListChannelViewerCount() throws Exception, NoSuchAlgorithmException {
LiveListChannelViewerCountRequest liveListChannelViewerCountRequest = new LiveListChannelViewerCountRequest();
LiveListChannelViewerCountResponse liveListChannelViewerCountResponse;
try {
liveListChannelViewerCountRequest.setChannelIds("1951952,1958888");
liveListChannelViewerCountResponse = new LiveChannelViewdataServiceImpl().listChannelViewerCount(
liveListChannelViewerCountRequest);
Assert.assertNotNull(liveListChannelViewerCountResponse);
if (liveListChannelViewerCountResponse != null) {
//to do something ......
log.debug("测试查询多个频道的实时在线人数成功,{}", JSON.toJSONString(liveListChannelViewerCountResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 LiveListChannelViewerCountResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelIds | true | String | 頻道號,使用英文逗號分隔,例如:100000,100001 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelViewerCounts | Array | 頻道即時線上人數【詳見ChannelViewerCount參數描述】 |
ChannelViewerCount參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelId | String | 頻道號碼 |
| time | String | 統計的時間點(時間格式:24H),例如:15:39:10 |
| count | String | 某個時間點的即時觀看人數 |
6、查詢頻道的歷史並發人數
描述
查询频道的历史并发人数
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/statistics/concurrence
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetChannelViewerConcurrence() throws Exception, NoSuchAlgorithmException {
LiveChannelViewerConcurrenceRequest liveChannelViewerConcurrenceRequest =
new LiveChannelViewerConcurrenceRequest();
LiveChannelViewerConcurrenceResponse liveChannelViewerConcurrenceResponse;
try {
liveChannelViewerConcurrenceRequest.setChannelId(createChannel())
.setStartDate(getDate(2020, 10, 01))
.setEndDate(getDate(2020, 11, 11));
liveChannelViewerConcurrenceResponse = new LiveChannelViewdataServiceImpl().getChannelViewerConcurrence(
liveChannelViewerConcurrenceRequest);
Assert.assertNotNull(liveChannelViewerConcurrenceResponse);
if (liveChannelViewerConcurrenceResponse != null) {
//to do something ......
log.debug("测试查询频道的历史并发人数成功,{}", JSON.toJSONString(liveChannelViewerConcurrenceResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳 LiveChannelViewerConcurrenceResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startDate | true | Date | 開始日期格式,yyyy-MM-dd,開始日期與結束日期的時間跨度:最多查詢兩個月內的資料 |
| endDate | true | Date | 結束日期格式,yyyy-MM-dd,開始日期與結束日期的時間跨度:最多查詢兩個月內的資料 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelViewerConcurrences | Array | 頻道並發線上人數【詳見ChannelViewerConcurrence參數描述】 |
ChannelViewerConcurrence參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| day | Date | 統計的日期(時間格式:yyyy-MM-dd,範例:2019-04-10) |
| minute | String | 統計的時間點(時間格式:12H,範例:10:30) |
| viewers | String | 某個時間點即時觀看人數 |
7、查詢時間內直播場次資料
描述
查询时间内直播场次数据
接口地址(仅做说明使用):https://api.polyv.net/live/v4/statistics/session-stats/list
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、若未填寫查詢時間區段,預設查詢目前時間至前一小時內產生的場次報表資料;查詢時間區段最大間隔為24小時
單元測試
@Test
public void testGetLiveSession() throws IOException, NoSuchAlgorithmException {
LiveGetLiveSessionRequest liveGetLiveSessionRequest = new LiveGetLiveSessionRequest();
LiveGetLiveSessionResponse liveGetLiveSessionResponse;
try {
liveGetLiveSessionRequest.setStartTime(super.getDate(2021, 10, 16, 0, 31, 15));
liveGetLiveSessionRequest.setEndTime(super.getDate(2021, 10, 16, 20, 31, 15));
liveGetLiveSessionResponse = new LiveChannelViewdataServiceImpl().getLiveSession(liveGetLiveSessionRequest);
Assert.assertNotNull(liveGetLiveSessionResponse);
if (liveGetLiveSessionResponse != null) {
//to do something ......
log.debug("测试查询时间内直播场次数据成功{}", JSON.toJSONString(liveGetLiveSessionResponse));
}
} 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、請求正確,回傳LiveGetLiveSessionResponse物件,B端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名稱 | 必填 | 類型 | 說明 |
|---|---|---|---|
| startTime | false | Date | 開始時間 |
| endTime | false | Date | 結束時間 |
| currentPage | false | Integer | 頁碼,預設為1【對應 API 文件的 pageNumber 欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 直播場次資料【詳見ChannelLiveSession參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 當前頁【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
ChannelLiveSession參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelId | String | 頻道ID |
| sessionId | String | 直播場次ID |
| name | String | 場次名稱 |
| startTime | Date | 直播開始時間,時間格式 yyyy-MM-dd HH:mm:ss |
| endTime | Date | 直播結束時間,時間格式 yyyy-MM-dd HH:mm:ss |
| userId | String | 用戶ID |
8、分頁查詢帳號直播觀看詳情資料
描述
分页获取账号下所有频道观看详情数据
接口地址(仅做说明使用):https://api.polyv.net/live/v3/user/statistics/viewlog
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetChannelViewLog() throws IOException, NoSuchAlgorithmException {
LiveGetChannelViewLogRequest liveGetChannelViewLogRequest = new LiveGetChannelViewLogRequest();
LiveGetChannelViewLogResponse liveGetChannelViewLogResponse;
try {
String channelId = super.createChannel();
liveGetChannelViewLogRequest.setChannelId(channelId)
.setStartDate(super.getDate(1606924800000L))
.setEndDate(super.getDate(1607011200000L));
liveGetChannelViewLogResponse = new LiveChannelViewdataServiceImpl().getChannelViewLog(
liveGetChannelViewLogRequest);
Assert.assertNotNull(liveGetChannelViewLogResponse);
if (liveGetChannelViewLogResponse != null) {
//to do something ......
log.debug("测试分页查询账号直播观看详情数据成功 {}", JSON.toJSONString(liveGetChannelViewLogResponse));
}
} 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、請求正確,回傳 LiveGetChannelViewLogResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| startDate | true | Date | 查詢開始時間,格式:yyyy-MM-dd HH:mm:ss |
| endDate | true | Date | 查詢結束時間,格式:yyyy-MM-dd HH:mm:ss |
| channelId | false | String | 頻道ID,不傳則查詢所有頻道 |
| watchType | false | String | 觀看類型, live:直播, vod:回放 |
| currentPage | false | Integer | 頁數,預設為1【對應API文件的page欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| appId | false | String | POLYV用戶APP_ID,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV用戶APP_SECRET,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 觀看詳情資料列表【詳見ViewLogList參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 當前頁【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
ViewLogList參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| playId | String | 表示此次播放動作的ID |
| userId | String | POLYV用戶ID,與保利威官網一致,取得路徑:官網->登入->直播(開發設定) |
| channelId | String | 頻道號 |
| playDuration | Integer | 播放時長,單位:秒 |
| stayDuration | Integer | 停留時長,單位:秒 |
| flowSize | Long | 流量大小,單位:bytes |
| sessionId | String | 直播場次ID |
| viewerId | String | 使用POLYV觀看頁的觀眾ID【對應API文件的param1欄位】 |
| viewerName | String | 使用POLYV觀看頁的觀眾暱稱【對應API文件的param2欄位】 |
| logType | String | 觀看日誌類型,預設為live vod:觀看重播 live:直播【對應API文件的param3欄位】 |
| param4 | String | POLYV系統參數 |
| param5 | String | POLYV系統參數 |
| ipAddress | String | IP位址 |
| country | String | 國家 |
| province | String | 省份 |
| city | String | 城市 |
| isp | String | ISP運營商 |
| referer | String | 播放影片頁面位址 |
| userAgent | String | 用戶設備 |
| operatingSystem | String | 作業系統 |
| browser | String | 瀏覽器 |
| isMobile | String | 是否為行動端 |
| currentDay | Date | 查詢日期,格式:yyyy-MM-dd |
| createdTime | Date | 日誌建立日期,13位毫秒級時間戳 |
| lastModified | Date | 日誌更新日期,13位毫秒級時間戳 |
| pType | Integer | 1:無延遲觀看 0:一般觀看【對應API文件的ptype欄位】 |
| firstActiveTime | Date | 進入頁面時間,部分情況回傳為null,非特殊說明,請使用createdTime替代 |
| lastActiveTime | Date | 離開頁面時間,部分情況回傳為null,非特殊說明,請使用createdTime+stayDuration替代 |
9、查詢頻道多場次概覽統計資料
描述
接口用于统计直播间内多场次的直播的观看数据,数据会根据场次号进行汇总,返回观看UV、观看PV等。
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/statistics/get-session-stats
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetSessionStats() throws IOException, NoSuchAlgorithmException {
LiveGetSessionStatsRequest liveGetSessionStatsRequest = new LiveGetSessionStatsRequest();
LiveGetSessionStatsResponse liveGetSessionStatsResponse;
try {
String channelId = super.createChannel();
liveGetSessionStatsRequest.setChannelId(channelId)
.setStartTime(getDate(1610273359000L))
.setEndTime(getDate(1612001359000L));
liveGetSessionStatsResponse = new LiveChannelViewdataServiceImpl().getSessionStats(
liveGetSessionStatsRequest);
Assert.assertNotNull(liveGetSessionStatsResponse);
if (liveGetSessionStatsResponse != null) {
//to do something ......
log.debug("测试查询频道多场次概览统计数据成功 {}", JSON.toJSONString(liveGetSessionStatsResponse));
}
} 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、請求正確,回傳 LiveGetSessionStatsResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因:invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| sessionIds | false | String | 場次ID,多個場次使用逗號分隔,如:fw82mayhuy,fvipafupmh,場次ID與直播開始結束時間必填一項,場次ID與直播開始結束時間同時存在時,使用場次ID進行查詢 |
| startTime | false | Date | 直播開始時間,開始時間與結束時間相隔不可超過30天 |
| endTime | false | Date | 直播結束時間,場次ID與直播開始結束時間必填一項 |
| appId | false | String | POLYV用戶APP_ID,多帳號調用時該參數必填(即調用了initMultiAccount()設置多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV用戶APP_SECRET,多帳號調用時該參數必填(即調用了initMultiAccount()設置多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| list | Array | 直播間內多場次的觀看數據列表【詳見ChannelSessionStats參數描述】 |
ChannelSessionStats參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelId | String | 頻道號 |
| sessionId | String | 場次ID |
| name | String | 場次名稱 |
| startTime | Date | 場次開始時間 |
| endTime | Date | 場次結束時間 |
| duration | Integer | 直播時長,單位秒 |
| liveUV | Integer | 直播觀看用戶數 |
| livePV | Integer | 直播觀看次數 |
| playbackUV | Integer | 回放觀看用戶數 |
| playbackPV | Integer | 回放觀看次數 |
| totalPlayDuration | Integer | 觀看直播總時長,單位秒 |
| totalPlaybackDuration | Integer | 觀看回放總時長,單位秒 |
10、查詢時間範圍內頻道直播觀看詳情資料
描述
通过频道号获取该频道某段时间的直播观看的统计数据
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/statistics/daily/summary
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetDailySummary() throws IOException, NoSuchAlgorithmException {
LiveDailySummaryRequest liveDailySummaryRequest = new LiveDailySummaryRequest();
List<LiveDailySummaryResponse> liveDailySummaryResponse;
try {
String channelId = super.createChannel();
liveDailySummaryRequest.setChannelId(channelId);
liveDailySummaryRequest.setStartDay(super.getDate(2021, 3, 01));
liveDailySummaryRequest.setEndDay(super.getDate(2021, 3, 30));
liveDailySummaryResponse = new LiveChannelViewdataServiceImpl().getDailySummary(liveDailySummaryRequest);
Assert.assertNotNull(liveDailySummaryResponse);
if (liveDailySummaryResponse != null) {
//to do something ......
log.debug("测试查询时间范围内频道直播观看详情数据成功 {}", JSON.toJSONString(liveDailySummaryResponse));
}
} 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、請求正確,回傳 LiveDailySummaryResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startDay | true | Date | 開始日期,格式:yyyy-MM-dd |
| endDay | true | Date | 結束日期,格式:yyyy-MM-dd |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
回傳物件是List<LiveDailySummaryResponse>,LiveDailySummaryResponse具體元素內容如下:
| 參數名 | 類型 | 說明 |
|---|---|---|
| currentDay | Date | 查詢日期 |
| channelId | String | 頻道號 |
| userId | String | 直播帳號ID |
| pcPlayDuration | Integer | PC端播放時長,單位:分鐘 |
| pcVideoView | Integer | PC端總播放量,類似PV |
| pcUniqueViewer | Integer | PC端唯一觀眾數,類似UV |
| mobilePlayDuration | Integer | 行動端播放時長,單位:分鐘 |
| mobileVideoView | Integer | 行動端總播放量,類似PV |
| mobileUniqueViewer | Integer | 行動端唯一觀眾數,類似UV |
| createdTime | Date | 記錄新增的時間 |
| lastModified | Date | 記錄修改的時間 |
| creatorId | String | 建立帳號的子帳號用戶ID(為空則為主帳號建立) |
| creatorName | String | 建立頻道的子帳號名稱(主帳號建立的則顯示「主帳號」) |
11、查詢頻道連麥詳情資料
描述
接口用于查询某个频道的一段时间区间内的连麦详情数据,支持分页
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/mic/log/list-detail
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListLinkMicDetail() throws IOException, NoSuchAlgorithmException {
LiveListLinkMicDetailRequest liveListLinkMicDetailRequest = new LiveListLinkMicDetailRequest();
LiveListLinkMicDetailResponse liveListLinkMicDetailResponse;
try {
String channelId = super.createChannel();
liveListLinkMicDetailRequest.setChannelId(channelId);
liveListLinkMicDetailRequest.setStartDate(super.getDate(2020, 11, 1));
liveListLinkMicDetailRequest.setEndDate(super.getDate(2020, 11, 03));
liveListLinkMicDetailResponse = new LiveChannelViewdataServiceImpl().listLinkMicDetail(
liveListLinkMicDetailRequest);
Assert.assertNotNull(liveListLinkMicDetailResponse);
if (liveListLinkMicDetailResponse != null) {
//to do something ......
log.debug("测试查询频道连麦详情数据成功 {}", JSON.toJSONString(liveListLinkMicDetailResponse));
}
} 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、請求正確,回傳 LiveListLinkMicDetailResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startDate | true | Date | 開始日期,格式:yyyy-MM-dd,如2020-10-01,時間範圍不能超過30天 |
| endDate | true | Date | 結束日期,格式:yyyy-MM-dd,如2020-10-01,時間範圍不能超過30天 |
| page | false | Integer | 當前頁碼,預設為1 |
| pageSize | false | Integer | 每頁資料大小,預設500筆,最大5000筆,超過5000筆可以分多批拉取,每次page加1,直到返回列表contents為空為止 |
| appId | false | String | POLYV用戶APP_ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV用戶APP_SECRET,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| page | Integer | 目前頁碼,預設為1 |
| contents | Array | 查詢結果列表【詳見MicDetail參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
MicDetail參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelId | String | 頻道號 |
| sessionId | String | 場次號 |
| viewerId | String | 觀眾ID |
| identity | String | 身份 guest:嘉賓 student:學員 |
| nickname | String | 暱稱 |
| joinTime | Date | 進入 rtc 的時間,13位毫秒時間戳 |
| leaveTime | Date | 離開 rtc 的時間,13位毫秒時間戳 |
| duration | Integer | 連麥時長(分鐘數) |
12、查詢頻道即時並發數據
描述
在直播中,查询频道实时在线人数
接口地址(仅做说明使用):https://api.polyv.net/live/v1/statistics/%s/realtime
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetRealviewers() throws IOException, NoSuchAlgorithmException {
LiveRealviewersRequest liveRealviewersRequest = new LiveRealviewersRequest();
List<LiveRealviewersResponse> liveRealviewersResponse;
try {
String channelId = super.createChannel();
liveRealviewersRequest.setChannelId(channelId);
liveRealviewersRequest.setUserId(LiveGlobalConfig.getUserId());
liveRealviewersResponse = new LiveChannelViewdataResultServiceImpl().getRealviewers(liveRealviewersRequest);
Assert.assertNotNull(liveRealviewersResponse);
if (liveRealviewersResponse != null) {
//to do something ......
log.debug("测试查询频道实时并发数据成功 {}", JSON.toJSONString(liveRealviewersResponse));
}
} 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、請求正確,回傳 LiveRealviewersResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| userId | true | String | 直播帳號 ID |
| channelId | true | String | 直播頻道 ID |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
回傳物件是List<LiveRealviewersResponse>,LiveRealviewersResponse具體元素內容如下:
| 參數名 | 類型 | 說明 |
|---|---|---|
| time | String | 統計的時間,格式:HH:mm:ss |
| count | String | 某個時間,即時觀看人數 |
13、查詢後台頻道統計資訊
描述
查询后台频道统计信息
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/statistics/channel-statistic
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetChannelStatistic() throws IOException, NoSuchAlgorithmException {
LiveChannelStatisticRequest liveChannelStatisticRequest = new LiveChannelStatisticRequest();
LiveChannelStatisticResponse liveChannelStatisticResponse;
try {
String channelId = super.createChannel();
liveChannelStatisticRequest.setChannelId(channelId)
.setStartDate(super.getDate(2023, 10, 1))
.setEndDate(super.getDate(2023, 10, 30));
liveChannelStatisticResponse = new LiveChannelViewdataServiceImpl().getChannelStatistic(
liveChannelStatisticRequest);
Assert.assertNotNull(liveChannelStatisticResponse);
if (liveChannelStatisticResponse != null) {
log.info("uniqueVisitor is "+ liveChannelStatisticResponse.getUniqueVisitor());
//to do something ......
log.debug("测试查询后台频道统计信息成功 {}", JSON.toJSONString(liveChannelStatisticResponse));
}
} 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、請求正確,回傳 LiveChannelStatisticResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startDate | true | Date | 查詢的開始日期,格式為 yyyy-MM-dd |
| endDate | true | Date | 查詢的結束日期,格式為 yyyy-MM-dd |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即已呼叫 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網 -> 登入 -> 直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即已呼叫 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網 -> 登入 -> 直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| averagePlayDuration | Integer | 人均觀看時長,為(觀看時長/觀看人數)無條件捨去,單位:分鐘 |
| averageTime | Float | 人均觀看次數,為(觀看次數/觀看人數)*10 後無條件捨去再除以 10,所以有一位小數,單位:次 |
| ips | Integer | 觀看人數(根據 IP 位址去重) |
| viewers | Integer | 觀看人數(根據 viewerId 計算) |
| playDuration | Integer | 觀看時長,單位:分鐘 |
| plays | Integer | 觀看次數 |
| uniqueVisitor | Integer | 訪問人數 |
14、查詢帳號觀看記錄
描述
查询账号观看记录
接口地址(仅做说明使用):https://api.polyv.net/live/v4/user/viewlog/list
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetViewLogList() throws IOException, NoSuchAlgorithmException {
LiveListAccountViewlogRequest liveListAccountViewlogRequest = new LiveListAccountViewlogRequest();
LiveListAccountViewlogResponse liveListAccountViewlogResponse;
try {
liveListAccountViewlogRequest
.setStartDate(super.getDate(2023, 10, 1))
.setEndDate(super.getDate(2023, 10, 30));
liveListAccountViewlogResponse = new LiveChannelViewdataServiceImpl().listAccountViewlog(
liveListAccountViewlogRequest);
Assert.assertNotNull(liveListAccountViewlogResponse);
if (liveListAccountViewlogResponse != null) {
//to do something ......
log.debug("测试查询账号观看记录成功 {}", JSON.toJSONString(liveListAccountViewlogResponse));
}
} 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、請求正確,回傳 LiveListAccountViewlogResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| startDate | false | Date | 查詢的開始日期,不傳則查詢當月,格式為 yyyy-MM-dd |
| endDate | false | Date | 查詢的結束日期,必須與開始日期在同一個月,格式為 yyyy-MM-dd |
| viewerId | false | String | 觀眾 ID |
| channelId | false | String | 頻道 ID |
| currentPage | false | Integer | 頁數,預設為 1【對應 API 文件的 page 欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示 20 筆資料 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 查詢的結果列表【詳見ViewlogDetail參數說明】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 當前頁【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
ViewlogDetail參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| avgDuration | String | 平均觀看時長 |
| nick | String | 暱稱 |
| totalDuration | String | 總觀看時長 |
| viewCount | Integer | 觀看次數 |
| viewerId | String | 用戶Id |
| param4 | String | 自訂參數param4 |
| param5 | String | 自訂參數param5 |
