# 查询参会人会议质量数据

查询参会人会议质量数据（仅支持已结束会议），具体权限要求请参考「资源介绍」。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/vc/v1/participant_quality_list
HTTP Method | GET
接口频率限制 | [100 次/分钟](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用** | 获取视频会议室信息(vc:room:readonly)
字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请<br>获取用户 user ID(contact:user.employee_id:readonly)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>或<br>`user_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer u-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
meeting_start_time | string | 是 | 会议开始时间（需要精确到一分钟，unix时间，单位sec）<br>**示例值**：1655276858
meeting_end_time | string | 是 | 会议结束时间（unix时间，单位sec）<br>**示例值**：1655276858
meeting_no | string | 是 | 9位会议号<br>**示例值**：123456789
join_time | string | 是 | 参会人入会时间（unix时间，单位sec），可从「查询参会人明细」返回结果获取<br>**示例值**：1655276858
user_id | string | 否 | 参会人为Lark用户时填入，room_id和user_id必须只填一个<br>**示例值**：ou_3ec3f6a28a0d08c45d895276e8e5e19b
room_id | string | 否 | 参会人为Rooms时填入，room_id和user_id必须只填一个<br>**示例值**：omm_eada1d61a550955240c28757e7dec3af
page_size | int | 否 | 分页尺寸大小<br>**示例值**：20<br>**默认值**：`20`<br>**数据校验规则**：<br>- 取值范围：`20` ～ `100`
page_token | string | 否 | 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果<br>**示例值**：20
user_id_type | string | 否 | 用户 ID 类型<br>**示例值**：open_id<br>**可选值有**：<br>- open_id：标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多：如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)<br>- union_id：标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的，在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID，应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多：如何获取 Union ID？](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)<br>- user_id：标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内，一个用户的 User ID 在所有应用（包括商店应用）中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多：如何获取 User ID？](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)<br>**默认值**：`open_id`<br>**当值为 `user_id`，字段权限要求**：<br>获取用户 user ID(contact:user.employee_id:readonly)

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
participant_quality_list | participant_quality\[\] | 参会人参会质量列表
network | quality_network | 网络
time | string | 时间
network_delay | string | 网络延迟
bitrate_received | string | 码率（接收）
packet_loss_avg_received | string | 丢包 - 平均（接收）
packet_loss_max_received | string | 丢包 - 最大（接收）
bitrate_sent | string | 码率（发送）
packet_loss_avg_sent | string | 丢包 - 平均（发送）
packet_loss_max_sent | string | 丢包 - 最大（发送）
audio | quality_audio | 音频
time | string | 时间
mic_input_volume | string | 麦克风采集音量
speaker_volume | string | 扬声器播放音量
bitrate_received | string | 码率（接收）
latency_received | string | 延迟（接收）
jitter_received | string | 抖动（接收）
bitrate_sent | string | 码率（发送）
latency_sent | string | 延迟（发送）
jitter_sent | string | 抖动（发送）
video | quality_video_sharing | 视频
time | string | 时间
bitrate_received | string | 码率（接收）
latency_received | string | 延迟（接收）
jitter_received | string | 抖动（接收）
maximum_resolution_received | string | 最大分辨率（接收）
framerate_received | string | 帧率（接收）
bitrate_sent | string | 码率（发送）
latency_sent | string | 延迟（发送）
jitter_sent | string | 抖动（发送）
maximum_resolution_sent | string | 最大分辨率（发送）
framerate_sent | string | 帧率（发送）
screen_sharing | quality_video_sharing | 共享屏幕
time | string | 时间
bitrate_received | string | 码率（接收）
latency_received | string | 延迟（接收）
jitter_received | string | 抖动（接收）
maximum_resolution_received | string | 最大分辨率（接收）
framerate_received | string | 帧率（接收）
bitrate_sent | string | 码率（发送）
latency_sent | string | 延迟（发送）
jitter_sent | string | 抖动（发送）
maximum_resolution_sent | string | 最大分辨率（发送）
framerate_sent | string | 帧率（发送）
cpu_usage | quality_cpu_usage | Cpu使用量
time | string | 时间
client_avg_cpu_usage | string | 客户端平均 CPU 占用
client_max_cpu_usage | string | 客户端最大 CPU 占用
system_avg_cpu_usage | string | 系统平均 CPU 占用
system_max_cpu_usage | string | 系统最大 CPU 占用
page_token | string | 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token
has_more | boolean | 是否还有更多项

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "participant_quality_list": [
            {
                "network": {
                    "time": "2022.12.23 11:16:00 (GMT+08:00)",
                    "network_delay": "100ms",
                    "bitrate_received": "8kbps",
                    "packet_loss_avg_received": "8%",
                    "packet_loss_max_received": "9%",
                    "bitrate_sent": "9kbps",
                    "packet_loss_avg_sent": "8%",
                    "packet_loss_max_sent": "10%"
                },
                "audio": {
                    "time": "2022.12.23 11:16:00 (GMT+08:00)",
                    "mic_input_volume": "6dB",
                    "speaker_volume": "8dB",
                    "bitrate_received": "3kbps",
                    "latency_received": "100ms",
                    "jitter_received": "100ms",
                    "bitrate_sent": "9kbps",
                    "latency_sent": "100ms",
                    "jitter_sent": "100ms"
                },
                "video": {
                    "time": "2022.12.23 11:16:00 (GMT+08:00)",
                    "bitrate_received": "8kbps",
                    "latency_received": "100ms",
                    "jitter_received": "100ms",
                    "maximum_resolution_received": "1080P",
                    "framerate_received": "100fps",
                    "bitrate_sent": "9kbps",
                    "latency_sent": "100ms",
                    "jitter_sent": "100ms",
                    "maximum_resolution_sent": "4K",
                    "framerate_sent": "90fps"
                },
                "screen_sharing": {
                    "time": "2022.12.23 11:16:00 (GMT+08:00)",
                    "bitrate_received": "8kbps",
                    "latency_received": "100ms",
                    "jitter_received": "100ms",
                    "maximum_resolution_received": "1080P",
                    "framerate_received": "100fps",
                    "bitrate_sent": "9kbps",
                    "latency_sent": "100ms",
                    "jitter_sent": "100ms",
                    "maximum_resolution_sent": "4K",
                    "framerate_sent": "90fps"
                },
                "cpu_usage": {
                    "time": "2022.12.23 11:17:00",
                    "client_avg_cpu_usage": "0.8%",
                    "client_max_cpu_usage": "2.3%",
                    "system_avg_cpu_usage": "8.3%",
                    "system_max_cpu_usage": "30%"
                }
            }
        ],
        "page_token": "20",
        "has_more": true
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
500 | 121001 | internal error | 服务器内部错误，如果重试无效可联系管理员
400 | 121002 | not support | 暂不支持该功能
400 | 121003 | param error | 参数错误，检查参数的取值范围（请按照上面字段说明自查）
400 | 126003 | meeting number invalid (cannot smaller than 0) | 无效的会议号(不能小于0)
400 | 126004 | meeting number length not correct (supposed to be 9) | 会议号应该是9位
400 | 126005 | start time error (cannot larger than now or smaller than 0) | 开始时间不能大于当前时间或者小于0
400 | 126006 | end time cannot exceed start time for one day or smaller than start time | 结束时间不能超过开始时间一天或者小于开始时间
400 | 126007 | userID and roomID cannot be set concurrently | 用户ID和roomID不能同时设置
400 | 126009 | cannot find meeting according to the params you provide | 根据提供的参数无法获取会议信息
400 | 126010 | cannot find device according to the params you provide | 根据提供的参数无法获取设备信息
404 | 121004 | data not exist | 无效的请求体，请确保请求方法、请求信息、请求数据格式等是正确的
403 | 121005 | no permission | 无权限进行该操作，建议检查token类型、操作者身份以及资源的归属

