# 查询频道问卷结果

### 接口描述

```
1、查询直播问卷的答题结果及统计
2、接口支持https协议
3、参数问卷ID、场次号、查询时间同时存在多个时，按参数优先级从小到大，选其中一个参数作为查询条件
```

### 接口URL

```
http://api.polyv.net/live/v3/channel/questionnaire/answer-records
```

[在线API调用](https://git.polyv.net/help-center/document-center/-/blob/master/req.html?api=http:/api.polyv.net/live/v3/channel/questionnaire/answer-records/README.md)

### 请求方式

```
GET
```

### 接口约束

1、接口同时支持HTTP 、HTTPS ，建议使用HTTPS 确保接口安全，接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/limit/README.md)\


### 请求参数描述

| 参数名             | 必选    | 类型     | 说明                                                                                                                                                                                                        |
| --------------- | ----- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| appId           | true  | String | 账号appId【详见[获取密钥](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/getSecretKey/README.md)】                                                                                        |
| timestamp       | true  | Long   | 当前13位毫秒级时间戳，3分钟内有效                                                                                                                                                                                        |
| sign            | true  | String | 签名，为32位大写的MD5值,`生成签名的appSecret密钥作为通信数据安全的关键信息，严禁保存在客户端直接使用，所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据`【详见[签名生成规则](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/buildSign/README.md)】 |
| channelId       | true  | String | 频道号                                                                                                                                                                                                       |
| questionnaireId | false | String | 问卷ID，优先级1，该参数获取自【[查询频道问卷列表](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/live_interaction/list_questionaire.md)】                                                              |
| sessionId       | false | String | 场次号，优先级2                                                                                                                                                                                                  |
| startDate       | false | String | 开始时间，优先级3，格式：yyyy-MM-dd，默认查最近7天数据                                                                                                                                                                         |
| endDate         | false | String | 结束时间，优先级3，格式：yyyy-MM-dd，默认查最近7天数据                                                                                                                                                                         |

### 示例

```requestUrl
https://api.polyv.net/live/v3/channel/questionnaire/answer-records?endDate=2022-1-1&appId=frlr1zazn3&sign=92DC9A760C540DDCC7D7A3A020588DF8&channelId=1965681&startDate=2020-1-1&timestamp=1621845075669
```

### 响应参数描述

| 参数名     | 类型      | 说明                                                                                                                                                                                             |
| ------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| code    | Integer | 响应状态码，200为成功返回，非200为失败【详见[全局错误说明](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/errorInfo/README.md)】                                                               |
| status  | String  | 响应状态文本信息                                                                                                                                                                                       |
| message | String  | 响应描述信息，当code为400或者500的时候，辅助描述错误原因                                                                                                                                                              |
| data    | Array   | 成功响应时为问卷基本信息 【详见[data字段说明](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/live_interaction/get_questionnaire_result.md?id=data%E5%AD%97%E6%AE%B5%E8%AF%B4%E6%98%8E)】 |

#### data字段说明

| 参数名                   | 类型     | 说明                                                                                                                                                                                                               |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| questionnaireId       | String | 问卷ID                                                                                                                                                                                                             |
| customQuestionnaireId | String | 用户自定义问卷ID                                                                                                                                                                                                        |
| questionnaireTitle    | String | 问卷名称                                                                                                                                                                                                             |
| lastModified          | Long   | 更新时间，13位毫秒级时间戳                                                                                                                                                                                                   |
| endTime               | Long   | 问卷结束时间，13位毫秒级时间戳                                                                                                                                                                                                 |
| questionStats         | Object | 问卷下各个问题的答题统计 【详见[questionStats字段说明](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/live_interaction/get_questionnaire_result.md?id=questionStats%E5%AD%97%E6%AE%B5%E8%AF%B4%E6%98%8E)】 |
| users                 | Array  | 观看端提交答题的信息 【详见[users字段说明](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/live_interaction/get_questionnaire_result.md?id=users%E5%AD%97%E6%AE%B5%E8%AF%B4%E6%98%8E)】                   |

#### questionStats字段说明

| 参数名       | 类型      | 说明                                                                                                                                                                                                 |
| --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| questions | Array   | 问卷问题列表 【详见[questions字段说明](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/live_interaction/get_questionnaire_result.md?id=questions%E5%AD%97%E6%AE%B5%E8%AF%B4%E6%98%8E)】 |
| total     | Integer | 题目的答题人数                                                                                                                                                                                            |

#### questions字段说明

| 参数名          | 类型      | 说明            |
| ------------ | ------- | ------------- |
| questionId   | String  | 题目ID          |
| questionName | String  | 题目名称          |
| score        | Integer | 题目分数          |
| totalScore   | Integer | 题目的总得分        |
| correctCount | Integer | 题目的答对人数       |
| a-j          | Integer | 选择项a到j分别的答题人数 |

#### users字段说明

| 参数名        | 类型      | 说明                                                                                                                                                                                                  |
| ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| viewerId   | String  | 提交问卷的用户ID                                                                                                                                                                                           |
| nickname   | String  | 提交问卷的用户昵称                                                                                                                                                                                           |
| totalScore | Integer | 提交问卷的用户的总得分                                                                                                                                                                                         |
| submitTime | Long    | 提交问卷的日期，13位的时间戳                                                                                                                                                                                     |
| answers    | Array   | 用户每道题目的答题情况 【详见[answers字段说明](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/live_interaction/get_questionnaire_result.md?id=answers%E5%AD%97%E6%AE%B5%E8%AF%B4%E6%98%8E)】 |
| param4     | String  | 自定义参数，用于标志唯一观众                                                                                                                                                                                      |
| param5     | String  | 自定义参数，用于标志唯一观众                                                                                                                                                                                      |

#### answers字段说明

| 参数名          | 类型      | 说明                                      |
| ------------ | ------- | --------------------------------------- |
| questionId   | String  | 题目ID                                    |
| questionName | String  | 题目名称                                    |
| answer       | String  | 提交的题目答案                                 |
| score        | Integer | 用户答题的得分                                 |
| type         | String  | <p>题目的类型<br>R：单选题<br>C：多项题<br>Q：问答题</p> |

### Java请求示例

快速接入基础代码请下载相关依赖源码， [点击下载源代码](https://git.polyv.net/help-center/document-center/-/blob/master/third_res/util.zip) ,下载后加入到自己的源码工程中即可。测试用例中的**HttpUtil.java 和 LiveSignUtil.java** 都包含在下载文件中。

> 强烈建议您使用[直播Java SDK](https://git.polyv.net/help-center/document-center/-/blob/master/live/java/README.md)完成API的功能对接，直播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。

```java
private static final Logger log = LoggerFactory.getLogger(LiveInteractionTest.class);

/**
* 查询频道问卷结果
* @throws IOException
*/
public void testGetQuestionnaireResult() throws IOException, NoSuchAlgorithmException {
  //公共参数,填写自己的实际参数
  String appId=super.appId;
  String appSecret=super.appSecret;
  String userId = super.userId;
  String timestamp=String.valueOf(System.currentTimeMillis());
  //业务参数
  String channelId = "1965681";
  String startDate = "2020-1-1";
  String endDate = "2022-1-1";
  String url = "https://api.polyv.net/live/v3/channel/questionnaire/answer-records";

  //http 调用逻辑
  Map<String,String> requestMap = new HashMap<>();
  requestMap.put("appId", appId);
  requestMap.put("timestamp",timestamp);

  requestMap.put("channelId",channelId);
  requestMap.put("startDate",startDate);
  requestMap.put("endDate",endDate);

  requestMap.put("sign",LiveSignUtil.getSign(requestMap, appSecret));
  String response = HttpUtil.get(url,requestMap);
  log.info("测试查询频道问卷结果接口返回值：{}",response);
  //do somethings
}  

```

### 响应示例

系统全局错误说明详见[全局错误说明](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/errorInfo/README.md)

成功示例

```json
{
	"code": 200,
	"status": "success",
	"message": "",
	"data": [{
		"questionnaireId": "fs9skpv22f",
		"questionnaireTitle": "测试试卷，明天会更好调查2",
		"lastModified": 1603158379000,
		"endTime": 1603158379000,
		"questionStats": {
			"questions": [{
				"questionId": "f790a51167de4dc0b48f4b184f90be96",
				"questionName": "您的兴趣爱好？",
				"score": 20,
				"totalScore": 20,
				"total": 2,
				"correctCount": 1,
				"a": 2,
				"b": 1,
				"c": 0,
				"d": 0,
				"e": 0,
				"f": 0,
				"g": 0,
				"h": 0,
				"i": 0,
				"j": 0
			}],
			"total": 2
		},
		"users": [{
			"viewerId": "1603157068752",
			"nickname": "长沙观众/30182",
			"submitTime": 1603158235000,
			"totalScore": 0,
			"answers": [{
				"questionId": "4e8bfb9e0a3a465c825b3412d248bade",
				"questionName": "您的职务？",
				"answer": "这是职务",
				"score": 0,
				"type": "Q"
			}],
			"param4": null,
			"param5": null
		}, {
			"viewerId": "1603158143775",
			"nickname": "长沙观众/62648",
			"submitTime": 1603158312000,
			"totalScore": 20,
			"answers": [{
				"questionId": "4e8bfb9e0a3a465c825b3412d248bade",
				"questionName": "您的职务？",
				"answer": "teacher",
				"score": 0,
				"type": "Q"
			}],
			"param4": null,
			"param5": null
		}],
		"customQuestionnaireId": null
	}, {
		"questionnaireId": "fs9v59nq4u",
		"questionnaireTitle": "测试试卷，明天会更好调查1",
		"lastModified": 1603163828000,
		"endTime": 1603163828000,
		"questionStats": {
			"questions": [{
				"questionId": "84c4fcf2a54e4b19859edfaa23e49f1a",
				"questionName": "您的兴趣爱好？",
				"score": 20,
				"totalScore": 0,
				"total": 1,
				"correctCount": 0,
				"a": 1,
				"b": 0,
				"c": 1,
				"d": 0,
				"e": 0,
				"f": 0,
				"g": 0,
				"h": 0,
				"i": 0,
				"j": 0
			}],
			"total": 1
		},
		"users": [{
			"viewerId": "1603158143775",
			"nickname": "长沙观众/62648",
			"submitTime": 1603163818000,
			"totalScore": 0,
			"answers": [{
				"questionId": "176a1be7f8f04cb2b9e3691e14a3ae22",
				"questionName": "您的性别",
				"answer": "B",
				"score": 0,
				"type": "R"
			}],
			"param4": null,
			"param5": null
		}],
		"customQuestionnaireId": null
	}]
}
```

异常示例

```json
{
    "code": 400,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}
```
