# 批量添加观看白名单

### 接口URL

```
https://api.polyv.net/live/v3/channel/auth/batch-add-white-list
```

### 接口说明

```
1、作用：用于批量添加观看白名单
2、接口支持https协议
```

### 支持格式

```
JSON
```

### 请求方式

```
POST
```

### 请求数限制

```
TRUE
```

### 请求参数

| 参数名             | 必选   | 类型     | 说明                                                                                                                                                                                                        |
| --------------- | ---- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| appId           | 是    | string | 从API设置中获取，在直播系统登记的appId                                                                                                                                                                                   |
| timestamp       | 是    | string | 当前时间的秒级时间戳（13位）                                                                                                                                                                                           |
| sign            | true | String | 签名，为32位大写的MD5值,`生成签名的appSecret密钥作为通信数据安全的关键信息，严禁保存在客户端直接使用，所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据`【详见[签名生成规则](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/buildSign/README.md)】 |
| channelId       | 否    | int    | 频道号（传频道号则添加频道观看白名单，不传频道号则添加全局观看白名单）                                                                                                                                                                       |
| rank            | 是    | int    | 主要观看条件为1,次要观看条件为2                                                                                                                                                                                         |
| whiteLists      | 是    | array  | 请求体参数, 白名单列表                                                                                                                                                                                              |
| whiteLists.code | 是    | string | 请求体的参数, 白名单会员码                                                                                                                                                                                            |
| whiteLists.name | 是    | string | 请求体的参数, 白名单昵称                                                                                                                                                                                             |

### 操作成功响应示例

```json
{
  "code": 200,
  "message": "",
  "status": "success",
  "data": ""
}
```

### 操作失败响应示例

签名错误

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

白名单列表格式错误

```json
{
    "code": 400,
    "status": "error"
    "message": "whitelist validate error",
    "data": ""
}
```

### 响应字段说明

| 名称      | 类型     | 说明                                  |
| ------- | ------ | ----------------------------------- |
| code    | string | 响应代码，成功为200，失败为400，签名错误为401，异常错误500 |
| status  | string | 成功为success，失败为error                 |
| message | string | 错误时为错误提示消息                          |
| data    | string | 成功返回信息                              |

### java请求示例

```java
private void testBatchAddWhiteList() {
        String url = "https://api.polyv.net/live/v3/channel/auth/batch-add-white-list";
        // appId和加密串
        String appId = "xxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxx";
        String channelId = "10001";
		String rank = "1";

        Map<String, String> params = new HashMap<>();
        params.put("channelId", channelId);
		params.put("rank", rank);
		
		String body = "{\"whiteLists\": [{\"code\":\"1111\", \"name\":\"2222\"},{\"code\":\"1111eee\", \"name\":\"2222eee\"}]}";
		
        // 调用Polyv的工具类方法设置sign
        PolyvTool.setLiveSign(params, appId, appSecret);
        String content = HttpClientUtil.getInstance()
                .sendHttpPost(url, params, body);
        System.out.println(content);
    }
```
