questionnaireService
1、查詢頻道問卷列表
描述
接口用于获取频道的问卷列表
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/questionnaire/list
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetQuestionnaireListInfo() throws Exception, NoSuchAlgorithmException {
LiveQuestionnaireListRequest liveQuestionnaireListRequest = new LiveQuestionnaireListRequest();
LiveQuestionnaireListResponse liveQuestionnaireListResponse = null;
try {
String channelId = super.createChannel();
liveQuestionnaireListRequest.setChannelId(channelId);
liveQuestionnaireListResponse = new LiveQuestionnaireServiceImpl().getQuestionnaireListInfo(
liveQuestionnaireListRequest);
Assert.assertNotNull(liveQuestionnaireListResponse);
if (liveQuestionnaireListResponse != null) {
//to do something ......
log.debug("测试查询频道问卷列表成功{}", JSON.toJSONString(liveQuestionnaireListResponse));
}
} 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、請求正確,回傳 LiveQuestionnaireListResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因:invalid signature. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startTime | false | Date | 查詢記錄的開始時間 |
| endTime | false | Date | 查詢記錄的結束時間 |
| 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 | 問卷資料列表【詳見QuestionDetail參數說明】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 當前頁【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
QuestionDetail參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionnaireId | String | 問卷ID |
| channelId | String | 頻道號 |
| userId | String | POLYV用戶ID,與保利威官網一致,取得路徑:官網->登入->直播(開發設定) |
| questionnaireTitle | String | 問卷標題【對應API文件的name欄位】 |
| status | String | 問卷狀態,取值:saved(已儲存)、published(已發布)、forbidden(問卷已完成填寫) |
| createdTime | Date | 問卷建立時間 |
| lastModified | Date | 問卷最後修改時間 |
| endTime | Date | 停止提交問卷時間 |
| customQuestionnaireId | String | 使用者自訂問卷ID |
2、查詢頻道問卷詳情
描述
1、接口用于查询频道问卷详情
2、问卷ID 可以从获取频道问卷列表中获取
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/questionnaire/detail
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetQuestionnaireDetailInfo() throws Exception, NoSuchAlgorithmException {
LiveQuestionnaireDetailRequest liveQuestionnaireDetailRequest = new LiveQuestionnaireDetailRequest();
LiveQuestionnaireDetailResponse liveQuestionnaireDetailResponse = null;
try {
String channelId = super.createChannel();
//获取详情
liveQuestionnaireDetailRequest.setChannelId(channelId).setQuestionnaireId("fs9skpv22f");
liveQuestionnaireDetailResponse = new LiveQuestionnaireServiceImpl().getQuestionnaireDetailInfo(
liveQuestionnaireDetailRequest);
Assert.assertNotNull(liveQuestionnaireDetailResponse);
if (liveQuestionnaireDetailResponse != null) {
//to do something ......
log.debug("测试查询频道问卷详情成功{}", JSON.toJSONString(liveQuestionnaireDetailResponse));
}
} 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、請求正確,回傳 LiveQuestionnaireDetailResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| questionnaireId | true | String | 問卷 ID |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionnaireId | String | 問卷ID |
| customQuestionnaireId | String | 使用者自訂問卷ID |
| channelId | String | 頻道號 |
| userId | String | POLYV使用者ID,與保利威官網一致,取得路徑:官網->登入->直播(開發設定) |
| questionnaireTitle | String | 問卷標題【對應API文件的name欄位】 |
| status | String | 問卷狀態,draft:草稿,send:已發送,delete:已刪除 |
| createdTime | Date | 問卷建立時間 |
| endTime | Date | 停止問卷時間 |
| questions | Array | 問卷問題列表【詳見QuestionDetail參數說明】 |
QuestionDetail參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionId | String | 問題ID |
| name | String | 問題題目 |
| type | String | 問題類型,取值:R 單選;C 多選;S 評星題;Q 問答 |
| option1 | String | 選項A |
| option2 | String | 選項B |
| option3 | String | 選項C |
| option4 | String | 選項D |
| option5 | String | 選項E |
| option6 | String | 選項F |
| option7 | String | 選項G |
| option8 | String | 選項H |
| option9 | String | 選項I |
| option10 | String | 選項J |
| createdTime | Date | 建立時間 |
| lastModified | Date | 最後修改時間 |
| scoreEnabled | String | 是否計分,取值: Y 計分 、N 不計分,預設N |
| score | Integer | 題目分值 |
| required | String | 是否必答,取值Y 必填 、N 非必填 ,預設 N |
| answer | String | 問題答案 |
3、查詢頻道問卷結果
描述
接口用于查询直播问卷的答题结果及统计
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/questionnaire/answer-records
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetQuestionnaireResultInfo() throws Exception, NoSuchAlgorithmException {
LiveQuestionnaireResultRequest liveQuestionnaireResultRequest = new LiveQuestionnaireResultRequest();
List<LiveQuestionnaireResultResponse> liveQuestionnaireResultResponse = null;
try {
String channelId = super.createChannel();
liveQuestionnaireResultRequest.setChannelId(channelId);
liveQuestionnaireResultRequest.setStartDate(getDate(2020, 10, 01)).setEndDate(getDate(2099, 12, 12));
// liveQuestionnaireResultRequest.setQuestionnaireId("fs9skpv22f");
liveQuestionnaireResultResponse = new LiveQuestionnaireServiceImpl().getQuestionnaireResultInfo(
liveQuestionnaireResultRequest);
Assert.assertNotNull(liveQuestionnaireResultResponse);
if (liveQuestionnaireResultResponse != null) {
//to do something ......
log.debug("测试查询频道问卷结果成功{}", JSON.toJSONString(liveQuestionnaireResultResponse));
}
} 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、請求正確,回傳 LiveQuestionnaireResultResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startDate | false | Date | 開始時間,格式:yyyy-MM-dd 如 2018-12-10 |
| endDate | false | Date | 結束時間,格式:yyyy-MM-dd 如 2018-12-10 |
| questionnaireId | false | String | 問卷ID,與 startDate / endDate 同時提交時,startDate / endDate 無效,優先以 questionnaireId 為查詢條件 |
| appId | false | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 使用者 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
回傳物件為 List<LiveQuestionnaireResultResponse>,LiveQuestionnaireResultResponse 具體元素內容如下:
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionnaireId | String | 問卷ID |
| customQuestionnaireId | String | 使用者自訂問卷ID |
| questionnaireTitle | String | 問卷名稱 |
| lastModified | Date | 問卷最後修改時間 |
| endTime | Date | 問卷最後修改時間 |
| questionStats | Array | 問卷下各個問題的答題統計【詳見QuestionStats參數描述】 |
| users | Array | 觀看端提交答題的使用者資訊【詳見Users參數描述】 |
QuestionStats參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| total | Integer | 題目的答題人數 |
| questions | Array | 問卷下單一問題的答題統計資訊【詳見QuestionStat參數描述】 |
Users參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| viewerId | String | 提交問卷的使用者ID |
| nickname | String | 提交問卷的使用者暱稱 |
| submitTime | Date | 提交問卷時間 |
| totalScore | String | 提交問卷的使用者總得分 |
| answers | Array | 使用者每道題目的答題情況【詳見Answers參數描述】 |
| param4 | String | 在外部授權、直接(獨立)授權情況下傳過來的自訂參數,同步回傳 |
| param5 | String | 在外部授權、直接(獨立)授權情況下傳過來的自訂參數,同步回傳 |
QuestionStat參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionId | String | 題目ID |
| questionName | String | 題目名稱 |
| score | Integer | 題目分數 |
| totalScore | Integer | 題目的總得分 |
| correctCount | Integer | 題目的答對人數 |
| a | Integer | 選擇項a的答題人數 |
| b | Integer | 選擇項b的答題人數 |
| c | Integer | 選擇項c的答題人數 |
| d | Integer | 選擇項d的答題人數 |
| e | Integer | 選擇項e的答題人數 |
| f | Integer | 選擇項f的答題人數 |
| g | Integer | 選擇項g的答題人數 |
| h | Integer | 選擇項h的答題人數 |
| i | Integer | 選擇項i的答題人數 |
| j | Integer | 選擇項j的答題人數 |
Answers參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionId | String | 題目ID |
| questionName | String | 題目名稱 |
| answer | String | 提交的題目答案 |
| score | Integer | 使用者答題的得分 |
| type | String | 題目的類型 R:單選題 C:多選題 Q:問答題 |
4、分頁查詢問卷結果
描述
分页查询直播问卷的答题结果及统计
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/questionnaire/list-answer-records
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetQuestionnaireResultPageInfo() throws Exception, NoSuchAlgorithmException {
LiveQuestionnaireResultPageRequest liveQuestionnaireResultPageRequest =
new LiveQuestionnaireResultPageRequest();
LiveQuestionnaireResultPageResponse liveQuestionnaireResultPageResponse = null;
try {
String channelId = super.createChannel();
liveQuestionnaireResultPageRequest.setChannelId(channelId)
.setStartDate(getDate(2020, 10, 01))
.setEndDate(getDate(2099, 12, 12))
.setPageSize(20)
.setCurrentPage(1);
liveQuestionnaireResultPageResponse = new LiveQuestionnaireServiceImpl().getQuestionnaireResultPageInfo(
liveQuestionnaireResultPageRequest);
Assert.assertNotNull(liveQuestionnaireResultPageRequest);
if (liveQuestionnaireResultPageResponse != null) {
//to do something ......
log.debug("测试分页查询频道问卷结果成功{}", JSON.toJSONString(liveQuestionnaireResultPageResponse));
}
} 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、請求正確,回傳 LiveQuestionnaireResultPageResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| startDate | false | Date | 開始時間,格式:yyyy-MM-dd 如 2018-12-10 |
| endDate | false | Date | 結束時間,格式:yyyy-MM-dd 如 2018-12-10 |
| 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 | 頻道的問卷資訊與統計結果列表【詳見LiveQuestionnaireResultResponse參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 當前頁【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
LiveQuestionnaireResultResponse參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionnaireId | String | 問卷ID |
| customQuestionnaireId | String | 使用者自訂問卷ID |
| questionnaireTitle | String | 問卷名稱 |
| lastModified | Date | 問卷最後修改時間 |
| endTime | Date | 問卷最後修改時間 |
| questionStats | Array | 問卷下各個問題的答題統計【詳見QuestionStats參數描述】 |
| users | Array | 觀看端提交答題的使用者資訊【詳見Users參數描述】 |
QuestionStats參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| total | Integer | 題目的答題人數 |
| questions | Array | 問卷下單一問題的答題統計資訊【詳見QuestionStat參數描述】 |
Users參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| viewerId | String | 提交問卷的使用者ID |
| nickname | String | 提交問卷的使用者暱稱 |
| submitTime | Date | 提交問卷時間 |
| totalScore | String | 提交問卷的使用者總得分 |
| answers | Array | 使用者每道題目的答題情況【詳見Answers參數描述】 |
| param4 | String | 在外部授權、直接(獨立)授權情況下傳過來的自訂參數,同步回傳 |
| param5 | String | 在外部授權、直接(獨立)授權情況下傳過來的自訂參數,同步回傳 |
QuestionStat參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionId | String | 題目ID |
| questionName | String | 題目名稱 |
| score | Integer | 題目分數 |
| totalScore | Integer | 題目的總得分 |
| correctCount | Integer | 題目的答對人數 |
| a | Integer | 選擇項a的答題人數 |
| b | Integer | 選擇項b的答題人數 |
| c | Integer | 選擇項c的答題人數 |
| d | Integer | 選擇項d的答題人數 |
| e | Integer | 選擇項e的答題人數 |
| f | Integer | 選擇項f的答題人數 |
| g | Integer | 選擇項g的答題人數 |
| h | Integer | 選擇項h的答題人數 |
| i | Integer | 選擇項i的答題人數 |
| j | Integer | 選擇項j的答題人數 |
Answers參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| questionId | String | 題目ID |
| questionName | String | 題目名稱 |
| answer | String | 提交的題目答案 |
| score | Integer | 使用者答題得分 |
| type | String | 題目類型 R:單選題 C:多選題 Q:問答題 |
5、設定頻道問卷資訊
描述
接口用于编辑或添加问卷信息,为全量增加或修改
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/questionnaire/add-edit-questionnaire
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testSetQuestionnaireDetailInfo() throws Exception, NoSuchAlgorithmException {
LiveQuestionnaireDetailSetRequest liveQuestionnaireDetailSetRequest = new LiveQuestionnaireDetailSetRequest();
LiveQuestionnaireDetailSetResponse liveQuestionnaireDetailSetResponse = null;
try {
String channelId = super.createChannel();
//封装问卷请求对象
liveQuestionnaireDetailSetRequest.setChannelId(channelId)
.setCustomQuestionnaireId(LiveSignUtil.generateUUID())
// .setQuestionnaireId("fs9skpv22f")
.setQuestionnaireTitle("测试试卷,爱好问卷调查");
//封装问卷题目
LiveQuestionnaireDetailSetRequest.QuestionDetail questionDetail =
new LiveQuestionnaireDetailSetRequest.QuestionDetail();
questionDetail.setQuestionId(LiveSignUtil.generateUUID())
.setName("您的兴趣爱好?")
.setAnswer("A")
.setScoreEnabled(LiveConstant.Flag.YES.getFlag())
.setRequired(LiveConstant.Flag.YES.getFlag())
.setOptions(Arrays.asList(new String[]{"篮球", "足球", "排球", "跑步", "羽毛球"}))
.setScore(20)
.setType(LiveConstant.QuestionType.CHECK.getType());
LiveQuestionnaireDetailSetRequest.QuestionDetail questionDetail1 =
new LiveQuestionnaireDetailSetRequest.QuestionDetail();
questionDetail1.setQuestionId(LiveSignUtil.generateUUID())
.setName("您的性别")
.setScoreEnabled(LiveConstant.Flag.NO.getFlag())
.setRequired(LiveConstant.Flag.YES.getFlag())
.setOptions(Arrays.asList(new String[]{"M", "W"}))
.setType(LiveConstant.QuestionType.RADIO.getType());
LiveQuestionnaireDetailSetRequest.QuestionDetail questionDetail2 =
new LiveQuestionnaireDetailSetRequest.QuestionDetail();
questionDetail2.setQuestionId(LiveSignUtil.generateUUID())
.setName("您的职务?")
.setScoreEnabled(LiveConstant.Flag.NO.getFlag())
.setRequired(LiveConstant.Flag.YES.getFlag())
.setType(LiveConstant.QuestionType.QUESTION.getType());
//将问卷题目和问卷关联
liveQuestionnaireDetailSetRequest.setQuestions(Arrays.asList(
new LiveQuestionnaireDetailSetRequest.QuestionDetail[]{questionDetail, questionDetail1,
questionDetail2}));
//发送请求
liveQuestionnaireDetailSetResponse = new LiveQuestionnaireServiceImpl().setQuestionnaireDetailInfo(
liveQuestionnaireDetailSetRequest);
//判断结果
Assert.assertNotNull(liveQuestionnaireDetailSetResponse);
if (liveQuestionnaireDetailSetResponse != null) {
//to do something ......
log.debug("测试添加频道问卷成功{}", JSON.toJSONString(liveQuestionnaireDetailSetResponse));
}
} 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、請求正確,回傳 LiveQuestionnaireDetailSetResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.LivexxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelId | true | String | 頻道號 |
| questionnaireId | false | String | 問卷 ID,新增問卷時該欄位為 null,修改問卷時該欄位為問卷 ID |
| customQuestionnaireId | false | String | 客戶自訂問卷 ID,用於關聯自己系統的主鍵 ID |
| questionnaireTitle | true | String | 問卷標題 |
| questions | true | Array | 問卷的單一題目詳細列表【詳見QuestionDetail參數說明】 |
| appId | false | String | POLYV 用戶 APP_ID,多帳號調用時該參數必填(即已調用 initMultiAccount() 設定多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 用戶 APP_SECRET,多帳號調用時該參數必填(即已調用 initMultiAccount() 設定多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
QuestionDetail參數描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| questionId | false | String | 題目ID,新增時為null,修改問卷時必須傳遞 |
| score | false | Integer | 題目分數,自動化評分使用 |
| name | true | String | 題目資訊描述 |
| type | true | String | 題目類型,R為單選,C為多選,Q為問答 |
| scoreEnabled | false | String | 題目是否需要評分,Y為需要,N為不需要,預設為N |
| answer | false | String | 選擇題答案,需要評分的選擇題才有答案,填入對應選項序號,如:A或AB |
| required | false | String | 題目是否為必答,Y為必答,N為非必答,預設為N |
| options | false | Array | 題目為單選題或多選題的選項資料列表,選項陣列下標0-9對應答案A-J |
回傳物件描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| questionnaireId | String | 問卷 ID |
| questionIds | Array | 同一問卷下題目的問題 ID 陣列 |
| questionnaireTitle | String | 問卷標題 |
6、手動結束問卷
描述
结束问卷,当前频道没有问卷发布返回true
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/questionnaire/end
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testUpdatePlayDomain() throws IOException, NoSuchAlgorithmException {
LiveQuestionnaireEndRequest liveQuestionnaireEndRequest = new LiveQuestionnaireEndRequest();
Boolean liveQuestionnaireEndResponse = null;
try {
liveQuestionnaireEndRequest.setChannelIds(createChannel());
liveQuestionnaireEndResponse = new LiveQuestionnaireServiceImpl().questionnaireStop(
liveQuestionnaireEndRequest);
Assert.assertTrue(liveQuestionnaireEndResponse);
if (liveQuestionnaireEndResponse) {
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. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelIds | true | String | 頻道號,多個頻道用英文逗號分隔,如:100000,100001 |
| appId | false | String | POLYV 用戶 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV 用戶 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true:手動結束問卷成功,false:手動結束問卷失敗
