lotteryService
1、獲取頻道抽獎記錄列表
描述
获取频道抽奖记录列表(通过直播端发起抽奖)
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/list-lottery
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListLottery() throws Exception, NoSuchAlgorithmException {
LiveListLotteryRequest liveListLotteryRequest = new LiveListLotteryRequest();
LiveListLotteryResponse liveListLotteryResponse;
try {
liveListLotteryRequest.setChannelId(super.createChannel())
.setStartTime(super.getDate(1601481600000l))
.setEndTime(super.getDate(2021,1,21))
.setPageSize(1);
liveListLotteryResponse = new LiveLotteryServiceImpl().listLottery(liveListLotteryRequest);
Assert.assertNotNull(liveListLotteryResponse);
if (liveListLotteryResponse != null) {
//to do something ......
log.debug("测试获取频道抽奖记录列表成功,{}", JSON.toJSONString(liveListLotteryResponse));
}
} 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、請求正確,回傳 LiveListLotteryResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| sessionId | false | String | 要查詢的直播場次ID |
| startTime | true | Date | 查詢的開始日期 |
| endTime | true | Date | 查詢的結束日期 |
| currentPage | false | Integer | 頁數,預設為1【對應API文件的page欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料【對應API文件的limit欄位】 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 抽獎記錄列表【詳見LotteryListModel參數說明】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁面【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
LotteryListModel參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| lotteryId | String | 抽獎場次ID |
| channelId | String | 頻道號 |
| sessionId | String | 抽獎時的直播場次ID |
| lotteryRange | String | 抽獎範圍,取值:所有觀眾:all;當場直播未中獎用戶:notWinning;已簽到用戶:signed;頭銜:actor;已填問卷用戶:questionnaire |
| actor | String | 抽獎範圍為按頭銜抽獎時的頭銜 |
| prize | String | 獎品名稱 |
| amount | Integer | 預設中獎人數 |
| preset | Integer | 預設中獎觀眾ID,多個ID 用英文逗號分開 |
| createdTime | Date | 抽獎時間 |
| winnerCount | Integer | 實際中獎人數 |
| ext | String | 表示抽獎的額外擴展資訊,例:{"collectInfo":[{"field":"姓名:","tips":"請輸入您的真實姓名"}]},field表示要填寫的欄位名,tips表示要填寫的欄位提示 |
2、取得頻道單場抽獎的中獎記錄
描述
获取频道单场抽奖的中奖记录
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/get-winner-detail
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetLotteryWinnerDetail() throws Exception, NoSuchAlgorithmException {
LiveLotteryWinnerDetailRequest liveLotteryWinnerDetailRequest = new LiveLotteryWinnerDetailRequest();
LiveLotteryWinnerDetailResponse liveLotteryWinnerDetailResponse;
try {
liveLotteryWinnerDetailRequest.setChannelId(super.createChannel())
.setLotteryId("fv3hogjmh3");
liveLotteryWinnerDetailResponse = new LiveLotteryServiceImpl().getLotteryWinnerDetail(
liveLotteryWinnerDetailRequest);
Assert.assertNotNull(liveLotteryWinnerDetailResponse);
if (liveLotteryWinnerDetailResponse != null) {
//to do something ......
log.debug("测试获取频道单场抽奖的中奖记录成功,{}", JSON.toJSONString(liveLotteryWinnerDetailResponse));
}
} 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、請求正確,回傳 LiveLotteryWinnerDetailResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| lotteryId | true | String | 抽獎ID |
| currentPage | false | Integer | 頁數,預設為1【對應API文件的page欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料【對應API文件的limit欄位】 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 中獎記錄表【詳見LotteryWinnerDetail參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁面【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
LotteryWinnerDetail參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| recordId | String | 中獎記錄ID |
| channelId | String | 頻道號 |
| sessionId | String | 抽獎時的直播場次ID |
| lotteryId | String | 抽獎ID |
| viewerId | String | 中獎用戶ID |
| viewerName | String | 中獎用戶暱稱 |
| winnerCode | String | 中獎碼 |
| prize | String | 獎品名稱 |
| createdTime | Date | 中獎時間 |
| ext | String | 表示抽獎的額外擴展資訊,範例:{"collectInfo":[{"field":"姓名:","value":"鑽石王老五"}]},field 表示要填寫的欄位名稱,value 表示要填寫的欄位提示 |
3、設定抽獎中獎者資訊
描述
用于提交中奖者填写的信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/chat/add-receive-info
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、只能成功保存一次觀眾中獎資訊
3、中獎資訊需在7天內提交保存,否則會失效
單元測試
@Test
public void testSetLotteryWinnerInfo() throws Exception, NoSuchAlgorithmException {
LiveSetLotteryWinnerInfoRequest liveSetLotteryWinnerInfoRequest = new LiveSetLotteryWinnerInfoRequest();
Boolean liveSetLotteryWinnerInfoResponse;
try {
liveSetLotteryWinnerInfoRequest.setChannelId(super.createChannel())
.setLotteryId("fv3mao43u6")
.setWinnerCode("wMpUjVSi")
.setViewerId("asdadsdas")
.setName("sadboy")
.setTelephone("18974718689")
.setReceiveInfo("[{\"field\":\"姓名\",\"value\":\"测试\"},{\"field\":\"手机\",\"value\":\"13412345678\"}]");
liveSetLotteryWinnerInfoResponse = new LiveLotteryServiceImpl().setLotteryWinnerInfo(
liveSetLotteryWinnerInfoRequest);
Assert.assertNotNull(liveSetLotteryWinnerInfoResponse);
if (liveSetLotteryWinnerInfoResponse) {
//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 | 頻道號 |
| lotteryId | true | String | 抽獎場次ID |
| winnerCode | true | String | 中獎碼 |
| viewerId | true | String | 中獎者ID |
| name | false | String | 中獎者姓名,若傳姓名,必須傳中獎者手機號碼,receiveInfo欄位不需傳(無效) |
| telephone | false | String | 中獎者手機號碼,若傳手機號,必須傳中獎者姓名,receiveInfo欄位不需傳(無效) |
| receiveInfo | false | String | 自訂欄位資料,資料型別為陣列JSON[{"field":"姓名","value":"測試"},{"field":"手機","value":"13412345678"}] field:欄位名稱,value:欄位值,若傳此參數,name和telephone欄位不需傳(無效) |
| appId | false | String | POLYV用戶APP_ID,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV用戶APP_SECRET,多帳號呼叫時此參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true 表示設定成功,false 表示設定失敗
4、匯出頻道單場抽獎的中獎記錄
描述
用于下载频道的单场抽奖的中奖记录
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/download-winner-detail
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testDownloadLotteryDetail() throws Exception, NoSuchAlgorithmException {
LiveDownloadLotteryDetailRequest liveDownloadLotteryDetailRequest = new LiveDownloadLotteryDetailRequest();
byte[] liveDownloadLotteryDetailResponse;
try {
//path设置为下载文件路径
String path = Paths.get(getClass().getResource("/file/").toURI()).toString() + "downLoadLotteryWinner.xlsx";
liveDownloadLotteryDetailRequest.setChannelId(createChannel())
.setLotteryId("fv3hogjmh3");
liveDownloadLotteryDetailResponse = new LiveLotteryServiceImpl().downloadLotteryDetail(
liveDownloadLotteryDetailRequest);
Assert.assertNotNull(liveDownloadLotteryDetailResponse);
if (liveDownloadLotteryDetailResponse != null) {
FileUtil.writeFile(liveDownloadLotteryDetailResponse, path);
//to do something ......
log.debug("测试导出频道单场抽奖的中奖记录成功, 文件长度 {}", liveDownloadLotteryDetailResponse.length);
}
} 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、請求正確,回傳 byte[] 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求返回資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名稱 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | 是 | String | 頻道號 |
| lotteryId | 是 | String | 抽獎ID |
| appId | 否 | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | 否 | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
返回的byte[]可以依照單元測試範例進行儲存,也可以自行處理。
5、傳送按讚
描述
用于实现用户自开发观看页点赞效果,通过调用接口可以进行点赞,默认每次请求都是一次点赞
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/%s/like
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、介面內部已進行判斷,每個觀眾的按讚間隔限制為 1 秒,依據提交的觀眾 ID 來區分。
3、如果有需求支援同時點多個讚,可提交非必填參數 times,times 最大值不得超過 30。*如果提交次數為 n,則需等待 n-1 秒才能繼續點讚。
4、viewerId 由呼叫端自行區分使用者即可
單元測試
@Test
public void testSendChannelLike() throws Exception, NoSuchAlgorithmException {
LiveSendChannelLikeRequest liveSendChannelLikeRequest = new LiveSendChannelLikeRequest();
Integer liveSendChannelLikeResponse;
try {
liveSendChannelLikeRequest.setChannelId(createChannel())
.setViewerId(getRandomString(16))
.setTimes(13);
liveSendChannelLikeResponse = new LiveLotteryServiceImpl().sendChannelLike(liveSendChannelLikeRequest);
Assert.assertNotNull(liveSendChannelLikeResponse);
if (liveSendChannelLikeResponse != null) {
//to do something ......
log.debug("测试发送点赞成功,{}", JSON.toJSONString(liveSendChannelLikeResponse));
}
} 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、請求正確,回傳 Integer 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| viewerId | true | String | 按讚觀眾的ID,由呼叫方自行建立、區分 |
| times | false | Integer | 按讚的次數,不得超過30,提交後需等待(times-1)秒才能再次按讚 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即已呼叫 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即已呼叫 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
按讚數
6、發送打賞訊息
描述
用于发送打赏消息,请求成功后,服务器会向聊天室的用户广播打赏消息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/chat/send-reward-msg
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看 viewerId必須為線上的viewerId
單元測試
@Test
public void testSendChannelRewardMsg() throws Exception, NoSuchAlgorithmException {
LiveSendChannelRewardMsgRequest liveSendChannelRewardMsgRequest = new LiveSendChannelRewardMsgRequest();
Boolean liveSendChannelRewardMsgResponse;
try {
liveSendChannelRewardMsgRequest.setChannelId(createChannel())
.setNickname("sadboy")
.setAvatar("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3002379740,3965499425&fm=26&gp=0.jpg")
.setDonateType("cash")
.setContent("1")
.setGoodImage("https://s1.videocc.net/live-admin/img/icon-redpack-new.ae299535.png")
.setSessionId(null)
.setGoodNum("1")
.setNeedUserImage("N")
//通过外部授权等观看方式对接,由B端系统产生,通过白名单进入的,此处可使用会员码
.setViewerId(getRandomString(16));
liveSendChannelRewardMsgResponse = new LiveLotteryServiceImpl().sendChannelRewardMsg(
liveSendChannelRewardMsgRequest);
Assert.assertTrue(liveSendChannelRewardMsgResponse);
if (liveSendChannelRewardMsgResponse) {
//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 | 頻道號 |
| nickname | true | String | 打賞者暱稱 |
| avatar | true | String | 打賞者頭像 |
| viewerId | true | String | 打賞者ID,透過外部授權等觀看方式對接,由B端系統產生,透過白名單進入的,此處可使用會員碼 |
| donateType | true | String | 打賞類型,(cash:現金打賞;good:道具打賞) |
| content | true | String | 打賞內容:禮物打賞為禮物名稱,現金打賞為金額 |
| goodImage | false | String | 禮物打賞時為禮物圖片,現金打賞時為空 |
| sessionId | false | String | 直播場次ID |
| goodNum | false | String | 打賞數量,不傳預設為1 |
| needUserImage | false | String | 是否socket訊息需要用戶圖片(是:Y,否:N。不傳預設為N) |
| appId | false | String | POLYV用戶APP_ID,多帳號調用時該參數必填(即調用了initMultiAccount()設置多帳號調用),透過註冊保利威官網獲取,路徑:官網->登入->直播(開發設置) |
| appSecret | false | String | POLYV用戶APP_SECRET,多帳號調用時該參數必填(即調用了initMultiAccount()設置多帳號調用),透過註冊保利威官網獲取,路徑:官網->登入->直播(開發設置) |
回傳物件描述
true 表示傳送成功,false 表示傳送失敗
7、查詢頻道中獎統計記錄
描述
查询频道中奖统计记录
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/lottery/list
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、未傳遞 lotteryId 抽獎 ID 時,startTime、endTime 為必填項目。
3、傳入 lotteryId 抽獎 ID 時,startTime、endTime 可不傳,即使傳了也不會生效。
4、startTime、endTime 查詢時間跨度最大為 365 天
單元測試
@Test
public void testGetLotteryList() throws IOException, NoSuchAlgorithmException {
LiveGetLotteryListRequest liveGetLotteryListRequest = new LiveGetLotteryListRequest();
LiveGetLotteryListResponse liveGetLotteryListResponse;
try {
String channelId = createChannel();
liveGetLotteryListRequest.setChannelId(channelId)
.setStartTime(super.getXDay(new Date(), -60))
.setEndTime(super.getDate(System.currentTimeMillis()));
liveGetLotteryListResponse = new LiveLotteryServiceImpl().getLotteryList(liveGetLotteryListRequest);
Assert.assertNotNull(liveGetLotteryListResponse);
if (liveGetLotteryListResponse != null) {
//to do something ......
log.debug("测试查询频道中奖统计记录成功 {}", JSON.toJSONString(liveGetLotteryListResponse));
}
} 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、請求正確,回傳 LiveGetLotteryListResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| lotteryId | false | String | 抽獎ID |
| sessionId | false | String | 場次ID |
| startTime | false | Date | 開始時間,13位毫秒級時間戳 |
| endTime | false | Date | 結束時間,13位毫秒級時間戳 |
| 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 | 中獎記錄列表【詳見LotteryListContents參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁面【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
LotteryListContents參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| winnerCount | Integer | 實際中獎人數 |
| totalUsers | Integer | 參與抽獎的人數 |
| lotteryId | String | 抽獎場次ID |
| channelId | String | 頻道號 |
| userId | String | 帳號userId |
| sessionId | String | 抽獎時的直播場次ID |
| lotteryRange | String | 抽獎候選人範圍 |
| actor | String | 按頭銜抽獎時的頭銜名稱 |
| prize | String | 獎品名稱 |
| amount | Integer | 中獎人數 |
| preset | String | 預設中獎者,以英文逗號隔開 |
| lotteryExt | LotteryListExt | 抽獎的額外擴展資訊【詳見LotteryListExt參數描述】 |
| createdTime | Date | 抽獎時間 |
LotteryListExt參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| collectInfo | Array | 中獎用戶領獎收集資訊列表【詳見LotteryListExtCollectInfo參數描述】 |
LotteryListExtCollectInfo參數描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| field | String | 欄位名稱 |
| tips | String | 填寫提示 |
8、查詢多個頻道抽獎記錄
描述
获取一段时间内的多个直播频道发起抽奖记录列表
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/list-channels-lottery
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListChannelsLottery() throws IOException, NoSuchAlgorithmException {
LiveListChannelsLotteryRequest liveListChannelsLotteryRequest = new LiveListChannelsLotteryRequest();
LiveListChannelsLotteryResponse liveListChannelsLotteryResponse;
try {
String channelId = super.createChannel();
liveListChannelsLotteryRequest.setChannelIds(channelId);
liveListChannelsLotteryRequest.setStartTime(super.getDate(1601481600000L));
liveListChannelsLotteryRequest.setEndTime(super.getDate(1615357743000L));
liveListChannelsLotteryResponse = new LiveLotteryServiceImpl().listChannelsLottery(
liveListChannelsLotteryRequest);
Assert.assertNotNull(liveListChannelsLotteryResponse);
if (liveListChannelsLotteryResponse != null) {
//to do something ......
log.debug("测试查询多个频道抽奖记录成功 {}", JSON.toJSONString(liveListChannelsLotteryResponse));
}
} 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、請求正確,回傳 LiveListChannelsLotteryResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名稱 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelIds | 是 | String | 頻道號,多個頻道請使用「,」進行分隔 |
| startTime | 是 | Date | 查詢的開始日期 |
| endTime | 是 | Date | 查詢的結束日期 |
| sessionId | 否 | String | 要查詢的直播場次ID,預設查詢該頻道中所有場次 |
| currentPage | 否 | Integer | 頁數,預設為1【對應 API 文件的 page 欄位】 |
| pageSize | 否 | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料【對應 API 文件的 limit 欄位】 |
| appId | 否 | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | 否 | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 抽獎記錄列表 【詳見LotteryListModel參數說明】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁面【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
LotteryListModel參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| lotteryId | String | 抽獎場次ID |
| channelId | String | 頻道號 |
| sessionId | String | 抽獎時的直播場次ID |
| userId | String | 帳號userId |
| lotteryRange | String | 抽獎範圍 all:所有觀眾 notWinning:當場直播未中獎用戶 signed:已簽到用戶 actor:頭銜 questionnaire:已填問卷用戶 |
| actor | String | 抽獎範圍為按頭銜抽獎時的頭銜 |
| prize | String | 獎品名稱 |
| amount | Integer | 預設中獎人數 |
| preset | String | 預設中獎觀眾ID,多個ID用英文逗號分隔 |
| createdTime | Date | 抽獎時間 |
| lastModified | Date | 最後修改時間 |
| winnerCount | String | 實際中獎人數 |
| ext | String | json 格式的字串,表示抽獎的額外擴展資訊,對應模型類別:LotteryListModelExt欄位說明 |
