# 应用机器人参会与会中互动 编排应用机器人的完整会中流程:发现已在参加的会议,或在用户明确授权后发起或加入会议;随后拉取会中事件、发送文本或会中表情、操作倒计时,并仅在用户明确要求时结束会议或离会。 ## 选择入口 | 当前条件 | 起点 | |---|---| | 已有应用身份取得的 `meeting_id` | 直接拉取事件,不重复查询或入会 | | 应用机器人可能已在会中 | 已知目标用户 `user_open_id` 时,先用 `+meeting-list-active --as bot --user-id ` 发现会议 | | 用户明确要求机器人入会、旁听或代参会 | 使用 `+meeting-join --as bot` | | 用户明确要求机器人发起日程会议 | 使用 `+meeting-join --as bot --action start` | | 只想查当前用户所在会议 | 使用 [会中事件与会中互动](live-meeting-interact.md) 的用户身份路径,不让应用机器人入会 | 用户只提供 9 位会议号或询问会议内容,不等于授权机器人入会。 ## 发现应用机器人已在参加的会议 已知目标用户 `ou_` open_id 时,先查询“目标用户正在参会且应用机器人也在同一会议”的活跃会议: ```bash lark-cli vc +meeting-list-active --as bot --user-id --format json ``` - 返回多个会议时,展示主题、会议号和 `meeting_id` 让用户选择;不擅自取第一个。 - 返回空不代表目标用户没有在开会,只表示没有找到应用机器人也在会中的可见会议。 - 用户提供 9 位会议号时,在结果中按 `meeting_no` 匹配;匹配失败时不自动入会。 - 保存选定的长整数 `meeting_id`,后续事件、消息、倒计时和离会命令都沿用 `--as bot`。 身份可见范围、多会议选择和会议号匹配见 [`lark-vc-meeting-list-active`](../references/lark-vc-meeting-list-active.md)。 ## 发起或加入会议 只有用户明确要求应用机器人发起、加入、旁听或代参会时才执行。输入是 9 位会议号,不是长整数 `meeting_id`。 ```bash # 发起日程会议并加入 lark-cli vc +meeting-join --as bot --meeting-number <9_digit_meeting_number> --action start # 加入正在进行的会议 lark-cli vc +meeting-join --as bot --meeting-number <9_digit_meeting_number> ``` - 入会前确认目标会议号和用户意图;这是对其他参会人可见的写操作。 - `--action start` 仅用于发起符合条件的日程会议;未传时保持加入正在进行的会议。 - 保存返回的 `meeting.id`;后续邀请、拉取事件、发送会中消息、操作倒计时、结束或离会都使用该 ID 与 `--as bot`。 - 应用机器人可以同时加入多场会议;加入新会议前不需要退出其他会议。 - 根据返回状态确认入会成功,不要把“请求已发起”当作已入会。 会议密码、等候室、写操作风险和异常恢复见 [`lark-vc-agent-meeting-join`](../references/lark-vc-agent-meeting-join.md)。 ## 邀请参会人 只有用户明确要求邀请时才执行。输入是长数字 `meeting_id`,不是 9 位会议号。 ```bash # 邀请指定用户 lark-cli vc +meeting-invite --as bot --meeting-id --type SELECTED --open-ids # 邀请全部合格日程参会人 lark-cli vc +meeting-invite --as bot --meeting-id --type ALL_SUGGESTED ``` - 应用机器人必须已在目标 Calendar VC 中。 - `SELECTED` 接收用户 `open_id`;`ALL_SUGGESTED` 由服务端筛选合格日程参会人。 - 以返回结果确认邀请状态,不把请求提交当作参会人已入会。 邀请类型、人数上限和结果语义见 [`lark-vc-agent-meeting-invite`](../references/lark-vc-agent-meeting-invite.md)。 ## 拉取会中事件 使用应用身份发现或入会得到的 `meeting_id`: ```bash lark-cli vc +meeting-events --as bot --meeting-id --page-all --format pretty ``` - 默认使用 `--page-all` 拉取当前完整事件流,并保留返回的 `page_token` 供后续增量查询。 - 回答“现在、刚刚、最新”或总结当前会议前,重新拉取最新事件;不直接复用旧快照。 - 应用机器人必须当前在会中;不要用任意 `meeting_id` 尝试读取。 - 会中事件不能替代已结束会议的参会人快照、纪要、逐字稿或录制。 事件类型、分页、会后产物替代路径和文档上下文处理见 [`lark-vc-meeting-events`](../references/lark-vc-meeting-events.md)。 ## 发送会中文本或表情 每次发送都是对会中参会人可见的写操作。只有用户明确要求发送,并已确认目标会议和内容时才执行。 ```bash # 文本消息 lark-cli vc +meeting-message-send --as bot --meeting-id --msg-type text --text "" # 普通会中表情 lark-cli vc +meeting-message-send --as bot --meeting-id --msg-type reaction --emoji-type THUMBSUP ``` - 始终沿用产生 `meeting_id` 的应用身份;不要切换成用户身份。 - reaction 必须使用 Reference 中大小写敏感的完整 `emoji_type` 列表;不编造 key。 - 发送失败时停止并报告;不自动重试或换身份,避免产生重复可见消息。 - 用户要发绑定群或 IM 消息时改用 `lark-im`,不使用会中消息命令。 文本、reaction 语义、完整 emoji key 和幂等参数见 [`lark-vc-meeting-message-send`](../references/lark-vc-meeting-message-send.md)。 ## 操作会中倒计时 每次倒计时操作都是对会中参会人可见的写操作。只有用户明确要求设置、延长、提前结束或关闭倒计时时才执行。 ```bash # 设置倒计时 lark-cli vc +meeting-countdown --as bot --meeting-id --action set --duration # 延长倒计时 lark-cli vc +meeting-countdown --as bot --meeting-id --action prolong --duration ``` - 始终沿用产生 `meeting_id` 的应用身份;不要切换成用户身份。 - 用户只给 9 位会议号时,先按应用身份活跃会议列表匹配;匹配失败时不要为了倒计时自动入会,除非用户明确要求机器人入会。 - `end_in_advance` 和 `close_window` 不携带 `--duration`、提醒点或结束音频参数。 - 操作失败时停止并报告;不自动重试或换身份,避免重复可见副作用。 动作、提醒点和权限规则见 [`lark-vc-meeting-countdown`](../references/lark-vc-meeting-countdown.md)。 ## 结束会议 只有用户明确要求结束整场会议时才执行;不要把结束会议和机器人离会混用。 ```bash lark-cli vc +meeting-end --as bot --meeting-id --yes ``` - 输入是长数字 `meeting_id`。 - 当前应用机器人必须是 Host;结束成功会结束整场会议。 - 根据返回状态确认会议已结束。 身份、权限和失败原因见 [`lark-vc-agent-meeting-end`](../references/lark-vc-agent-meeting-end.md)。 ## 离开会议 只有用户明确要求机器人退出、离开或结束参会时才执行: ```bash lark-cli vc +meeting-leave --as bot --meeting-id ``` - 使用入会返回或应用身份活跃会议查询得到的 `meeting_id`,并确认机器人当前在该会议中。 - 不要因为任务完成而自动离会。 - 用户只要会后产物时,转入会议产物场景,不为此先执行离会。 - 根据返回状态确认离会完成。 离会参数、可见副作用和完成判定见 [`lark-vc-agent-meeting-leave`](../references/lark-vc-agent-meeting-leave.md)。 ## 应用身份权限配置检查 应用身份返回 `no permission`、`missing required scope(s)` 或 `missing_scopes` 时,不要执行 `auth login`。按顺序检查: 1. 按 CLI 错误中的 `hint` 处理;返回 `console_url` 时将其原样提供给用户。 2. 确认应用已开通对应权限,已发布并安装到当前租户。入会和应用身份会议查询需要 `vc:meeting.bot.join:write`;会中发消息需要 `vc:meeting.message:write`;会中倒计时需要 `vc:meeting.interaction:write`。 3. 在开放平台确认“权限可访问的数据范围”已保存为“按条件筛选”,条件为“会议的归属者 包含 与应用的可用范围一致”。 4. 上述配置均正确仍失败时,保留 CLI 返回的错误码和 `log_id`,按服务端权限异常排查;不要反复登录或改用其他身份重试。 ## 会后边界 - 已结束会议的搜索、参会人快照、智能纪要、逐字稿、妙记或录制,转入 [查询会议及其产物](query-meeting-and-artifacts.md)。 - 会后要把产物发到群或私聊,先使用会议产物场景获取结果,再转 `lark-im`。