# 分页获取答题卡的答题观众列表

### 接口URL

```
https://api.polyv.net/live/v3/channel/question/answer-record/list-by-page
```

### 接口说明

```
1、接口用于分页获取某次答题的答题观众列表
2、接口支持https
```

### 请求方式

```
GET
```

### 请求参数

| 参数名        | 必选 | 类型     | 说明                                                                                                                                                                                                        |
| ---------- | -- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| appId      | 是  | string | 从API设置中获取，在直播系统登记的appId                                                                                                                                                                                   |
| timestamp  | 是  | long   | 当前13位毫秒级时间戳，3分钟内有效                                                                                                                                                                                        |
| sign       | 是  | String | 签名，为32位大写的MD5值,`生成签名的appSecret密钥作为通信数据安全的关键信息，严禁保存在客户端直接使用，所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据`【详见[签名生成规则](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/buildSign/README.md)】 |
| channelId  | 是  | string | 频道号                                                                                                                                                                                                       |
| questionId | 是  | string | 题目ID，从题目列表中获取                                                                                                                                                                                             |
| times      | 是  | int    | 第几次的答题详情，用于同一道题发送了多次的情况，从题目列表中获取                                                                                                                                                                          |
| page       | 否  | int    | 页号，默认为1                                                                                                                                                                                                   |
| pageSize   | 否  | int    | 每页条数，默认为20                                                                                                                                                                                                |

### 响应成功JSON示例：

```json
// 成功
{
  "code": 200,
  "status": "success",
  "message": null,
  "data": {
    "endRow": 2,
    "contents": [
      {
        "questionId": "text",
        "costTime": 60,
        "viewerId": "",
        "submitTime": 6,
        "nickname": "",
        "submitTimeFormat": "text",
        "channelId": 3,
        "times": 1,
        "answer": "",
        "sessionId": "text",
        "costTimeFormat": "",
        "viewerAnswer": "",
        "type": "",
        "correct": "N",
        "name": ""
      }
    "firstPage": false,
    "lastPage": true,
    "limit": 0,
    "nextPageNumber": 0,
    "offset": 7,
    "pageNumber": 1,
    "pageSize": 0,
    "prePageNumber": 7,
    "startRow": 4,
    "totalItems": 0,
    "totalPages": 9,
    "nulla5af": 58983375
  }
}
```

### 响应失败JSON示例：

未输入appId

```json
{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}
```

appId不正确

```json
{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}
```

时间戳错误

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

签名错误

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

### 字段说明

| 参数名                                | 说明                                            |
| ---------------------------------- | --------------------------------------------- |
| code                               | 响应的状态码，例如：200                                 |
| status                             | 响应状态                                          |
| message                            | 异常错误信息                                        |
| data                               | 响应结果集                                         |
| data.pageNumber                    | 页数                                            |
| data.limit                         | 每页记录数                                         |
| data.totalItems                    | 记录总数                                          |
| data.firstPage                     | 是否为第一页，值为：true/false                          |
| data.lastPage                      | 是否为最后一页，值为：true/false                         |
| data.nextPageNumber                | 下一页编号                                         |
| data.prePageNumber                 | 上一页编号                                         |
| data.totalPages                    | 总页数                                           |
| data.startRow                      | 当前页第一条记录所在列表中的位置                              |
| data.endRow                        | 当前页最后一条记录所在列表中的位置                             |
| data.contents\[0].viewerId         | 观众Id                                          |
| data.contents\[0].nickname         | 观众昵称                                          |
| data.contents\[0].type             | 题目类型("R":单选,"C"：多选，"S": 评分, "Q": 问答, "V": 投票) |
| data.contents\[0].channelId        | 频道ID                                          |
| data.contents\[0].questionId       | 问题ID                                          |
| data.contents\[0].name             | 问题                                            |
| data.contents\[0].answer           | 问题答案                                          |
| data.contents\[0].correct          | 是否正确，Y 正常，N 不正确                               |
| data.contents\[0].viewerAnswer     | 观众ID                                          |
| data.contents\[0].sessionId        | 直播场次Id                                        |
| data.contents\[0].times            | 同一道题发送多次，区分不同次数的                              |
| data.contents\[0].submitTime       | 答题时间，时间戳                                      |
| data.contents\[0].submitTimeFormat | 格式化的答题时间，格式为：yyyy/MM/dd HH:mm:ss              |
| data.contents\[0].costTime         | 答题耗时，单位秒                                      |
| data.contents\[0].costTimeFormat   | 格式化的答题耗时                                      |

### php请求示例

```php
<?php
//引用config.php
include 'config.php';
$params = array(
	'appId' => $appId,
	'timestamp' => $timestamp,
	'channelId' => 108888,
	'questionId' => "zxcvbnm",
	'times' => 1
);

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法
$params['sign'] = $sign;

$url = "https://api.polyv.net/live/v3/channel/question/answer-record/list-by-page?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);

echo $res;
?>
```
