# 获取会议事件列表

获取会议中的事件列表，包括参会人加入或离开、发言、聊天、共享等事件。调用前请根据鉴权身份完成准备：使用 user_access_token 时，授权用户需已在目标会议中，并通过[获取用户活跃会议列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/bot/user_active_meeting)获取 meeting_id；使用 tenant_access_token 时，应用 Bot 需先通过[加入会议](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/bot/join)接口进入目标会议，并使用入会接口返回的 meeting_id。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/vc/v1/bots/events
HTTP Method | GET
接口频率限制 | [100 次/分钟](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用**<br>开启任一权限即可 | 获取会议信息(vc:meeting.meetingevent:read)<br>加入、离开会议(vc:meeting.bot.join:write)<br>**注意事项**：**推荐权限申请**：用户身份申请「获取会议信息」，应用身份申请「机器人入离会」
字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请<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_id | string | 是 | 会议唯一标识，可通过创建会议接口或会议列表查询接口获取。<br>**示例值**：7628568141510692381
page_token | string | 否 | 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果<br>**示例值**：eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0=
start_time | string | 否 | 待查询历史信息的起始时间，为秒级 Unix 时间戳字符串（10 位）。不传入时不限制查询的起始时间；同时传入 end_time 时，start_time 不得晚于 end_time。<br>**示例值**：1609296809
end_time | string | 否 | 待查询历史信息的结束时间，为秒级 Unix 时间戳字符串（10 位）。不传入时不限制查询的结束时间；同时传入 start_time 时，end_time 不得早于 start_time。<br>**示例值**：1609297809
page_size | int | 否 | 分页大小<br>**示例值**：20<br>**默认值**：`20`<br>**数据校验规则**：<br>- 取值范围：`20` ～ `100`
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 | \- | \-
has_more | boolean | 是否还有更多项
page_token | string | 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token
events | event\[\] | 会议事件列表，包含会议生命周期内的所有关键操作记录。
event_id | string | 事件唯一标识，用于幂等校验和事件追踪。可通过事件创建接口获取
event_type | string | 事件类型，用于区分不同业务场景的事件，如会议创建、参会人变更、会议结束等
event_time | string | 事件发生时间，RFC 3339 格式的日期时间字符串，例如 2024-05-20T14:30:00+08:00。
payload | meeting_activity_item | 事件负载，包含与事件类型对应的业务数据，采用 JSON 格式序列化后的字符串
meeting | meeting_agent_event_meeting | 会议数据
id | string | 会议ID
topic | string | 会议主题
meeting_no | string | 9位会议号
start_time | string | 会议开始时间（unix时间，单位sec）
end_time | string | 会议结束时间（unix时间，单位sec）
host_user | meeting_agent_event_user | 会议主持人
id | string | 用户 ID
user_type | int | 用户类型
user_role | int | 用户角色
user_name | string | 用户名称
activity_event_type | string | 会中活动子类型；取值 participant_joined / participant_left / transcript_received / chat_received / magic_share_started / magic_share_ended
participant_joined_items | participant_joined_item\[\] | 参会人入会内容（activity_event_type = participant_joined 时填充）
participant | meeting_agent_event_user | 入会的参会人
id | string | 用户 ID
user_type | int | 用户类型
user_role | int | 用户角色
user_name | string | 用户名称
join_time | string | 入会时间（毫秒级时间戳）
participant_left_items | participant_left_item\[\] | 参会人离会内容（activity_event_type = participant_left 时填充）
participant | meeting_agent_event_user | 离会的参会人
id | string | 用户 ID
user_type | int | 用户类型
user_role | int | 用户角色
user_name | string | 用户名称
leave_reason | int | 离会原因
leave_time | string | 离会时间（毫秒级时间戳）
transcript_received_items | transcript_item\[\] | 字幕内容（activity_event_type = transcript_received 时填充）
speaker | meeting_agent_event_user | 发言人
id | string | 用户 ID
user_type | int | 用户类型
user_role | int | 用户角色
user_name | string | 用户名称
text | string | 字幕文本
language | string | 语言类型
start_time_ms | string | 句子开始时间（毫秒级时间戳）
end_time_ms | string | 句子结束时间（毫秒级时间戳）
sentence_id | string | 句子 ID（用于去重和排序）
chat_received_items | chat_message_item\[\] | 聊天消息内容（activity_event_type = chat_received 时填充）
operator | meeting_agent_event_user | 发送者
id | string | 用户 ID
user_type | int | 用户类型
user_role | int | 用户角色
user_name | string | 用户名称
message_id | string | 消息 ID
message_type | int | 消息类型
content | string | 消息内容
send_time | string | 发送时间（毫秒级时间戳）
magic_share_started_items | magic_share_started_item\[\] | 妙享开始内容（activity_event_type = magic_share_started 时填充）
operator | meeting_agent_event_user | 发起妙享的操作者
id | string | 用户 ID
user_type | int | 用户类型
user_role | int | 用户角色
user_name | string | 用户名称
share_id | string | 共享会话 ID
share_doc | share_doc | 共享文档信息
url | string | 文档 URL
title | string | 文档标题
time | string | 妙享开始时间（毫秒级时间戳）
magic_share_ended_items | magic_share_ended_item\[\] | 妙享结束内容（activity_event_type = magic_share_ended 时填充）
operator | meeting_agent_event_user | 结束妙享的操作者
id | string | 用户 ID
user_type | int | 用户类型
user_role | int | 用户角色
user_name | string | 用户名称
share_id | string | 共享会话 ID
time | string | 妙享结束时间（毫秒级时间戳）

### 响应体示例
```json
{
  "code": 0,
  "msg": "success",
  "data": {
    "has_more": false,
    "events": [
      {
        "event_id": "evt_20240520143000_123456",
        "event_type": "meeting.activity",
        "event_time": "2024-05-20T14:30:00+08:00",
        "payload": {
          "meeting": {
            "id": "7628148899983674909",
            "topic": "周会",
            "meeting_no": "123456789"
          },
          "activity_event_type": "participant_joined",
          "participant_joined_items": [
            {
              "participant": {
                "id": "ou_3ec3f6a28a0d08c45d895276e8e5e19b",
                "user_type": 1,
                "user_role": 1,
                "user_name": "张三"
              },
              "join_time": 1716186600000
            }
          ]
        }
      }
    ]
  }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 120001 | param is invalid | 请参照接口文档参数校验规则，逐一检查请求参数的类型、格式、取值范围和必填项是否符合要求，并结合具体报错信息排查。
403 | 120002 | This user is temporarily unable to retrieve meeting events. Ask the meeting host to enable "AI Summary" and try again. If it is already enabled, confirm that "Allow agents to join meetings" is enabled in the current meeting's "Security" settings. See: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/bot/events | 用户暂时无法获取会议事件列表。请由会议主持人开启「AI 总结」后重试；如已开启，请在当前会议的「安全」中确认「允许智能体加入会议」已开启。<br>![当前会议中开启 AI 总结和允许智能体加入会议](https://sf3-cn.feishucdn.com/obj/open-platform-opendoc/eb1ea70801866df10b82ce7ad9576824_1Nt6JC2dI5.png?lazyload=true&width=2192&height=1550)
403 | 120003 | user is not in the meeting | 用户不在会议中，请确认用户已加入该会议后重试
403 | 120004 | bot is not in the meeting | 应用机器人不在会议中，请将应用机器人加入该会议后重试

