- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
136 lines
6.6 KiB
Markdown
136 lines
6.6 KiB
Markdown
|
||
# vc +meeting-join
|
||
|
||
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
||
|
||
通过 9 位会议号加入一场正在进行的视频会议(bot join)。这是一次**写操作**,会实际让当前身份加入会议。
|
||
|
||
本 skill 对应 shortcut:`lark-cli vc +meeting-join`(调用 `POST /open-apis/vc/v1/bots/join`)。
|
||
|
||
## 命令
|
||
|
||
```bash
|
||
# 仅指定会议号(无密码)
|
||
lark-cli vc +meeting-join --meeting-number 123456789
|
||
|
||
# 指定会议号 + 密码
|
||
lark-cli vc +meeting-join --meeting-number 123456789 --password 8888
|
||
|
||
# 从邀请事件透传 call_id(参见「如何获取输入参数」)
|
||
lark-cli vc +meeting-join --meeting-number 123456789 --call-id a08e06bf-9a41-44e4-a89c-a7871899e783
|
||
|
||
# 输出格式
|
||
lark-cli vc +meeting-join --meeting-number 123456789 --format json
|
||
|
||
# 预览 API 调用(不实际加入会议)
|
||
lark-cli vc +meeting-join --meeting-number 123456789 --dry-run
|
||
```
|
||
|
||
## 参数
|
||
|
||
| 参数 | 必填 | 说明 |
|
||
|------|------|------|
|
||
| `--meeting-number <no>` | 是 | 会议号,必须为 **9 位纯数字** |
|
||
| `--password <pw>` | 否 | 会议密码,仅在该会议设置了入会密码时传入 |
|
||
| `--call-id <id>` | 否 | 从 `vc.bot.meeting_invited_v1` 邀请事件透传的 `call_id`,原样回传即可。Agent 主动入会或无邀请事件来源时不传 |
|
||
| `--format <fmt>` | 否 | 输出格式:json (默认) / pretty / table / ndjson / csv |
|
||
| `--dry-run` | 否 | 预览 API 调用,不执行 |
|
||
|
||
## 核心约束
|
||
|
||
### 1. 仅支持 user 身份
|
||
|
||
该命令仅支持 `user` 身份。
|
||
|
||
### 2. 会议号格式严格校验
|
||
|
||
`--meeting-number` 必须是 9 位纯数字,否则本地校验直接报错:
|
||
`--meeting-number must be exactly 9 digits`。
|
||
|
||
常见错误来源:
|
||
- 把会议链接整条粘进来(应仅取尾部的 9 位数字)
|
||
- 把 `meeting_id`(长数字 ID)当成会议号传入(两者不是同一个东西)
|
||
|
||
### 3. 会议必须已开始且允许入会
|
||
|
||
- 会议必须处于**进行中**状态,bot 无法加入尚未开始或已结束的会议。
|
||
- 若会议设置了**等候室 / 入会审批**,bot 可能需要主持人放行后才真正入会。
|
||
- 若返回 `HTTP 403: no permission`(错误码 `121003`),不要只理解成“账号没权限”。这类报错更常见的原因是:会议参数或会控配置当前不满足入会条件,例如会议号填错、密码未传或错误、会议尚未开始、等候室 / 入会审批未放行、会议禁止外部/特定身份加入等。应先确认这些配置项,再重试。
|
||
|
||
### 4. 机器人入会后对其他参会人可见
|
||
|
||
这是一次真实入会操作,机器人会立即出现在参会人列表中,其他参会人可见,并产生会议日志。误入错会的社交成本高于技术成本——执行前优先确认 9 位会议号的来源(用户输入 / 会议链接末尾),不要臆造。参数格式有疑问时可用 `--dry-run` 预览请求体。
|
||
|
||
## 输出结果
|
||
|
||
接口返回会议基本信息,字段视具体响应而定,常见字段:
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `meeting.id` | 会议 ID(可后续传给 `+meeting-leave --meeting-id`) |
|
||
| `meeting.meeting_no` | 会议号(与入参一致) |
|
||
| `meeting.topic` | 会议主题 |
|
||
| `meeting.start_time` | 会议开始时间 |
|
||
|
||
> **重要**:拿到 `meeting.id` 后务必保留,退出会议(`+meeting-leave`)需要使用它,而不是会议号。
|
||
|
||
## 如何获取输入参数
|
||
|
||
| 输入参数 | 获取方式 |
|
||
|---------|---------|
|
||
| `meeting-number` | 会议号由主持人分享;也可从会议链接尾部解析 9 位数字 |
|
||
| `password` | 若会议设置了入会密码,由主持人提供 |
|
||
| `call-id` | 由 `vc.bot.meeting_invited_v1` 邀请事件的 `call_id` 字段携带,Agent 收到事件时透传过来;无邀请事件场景(如 Agent 主动入会)不传 |
|
||
|
||
## Agent 组合场景
|
||
|
||
### 场景 1:加入会议 → 监听会中事件
|
||
|
||
```bash
|
||
# 第 1 步:加入会议,记录返回的 meeting.id
|
||
lark-cli vc +meeting-join --meeting-number 123456789
|
||
|
||
# 第 2 步:使用返回的 meeting.id 查询会中事件
|
||
lark-cli vc +meeting-events --meeting-id <meeting.id> --page-all --format pretty
|
||
```
|
||
|
||
### 场景 2:加入会议 → 会后拉取纪要 / 录制
|
||
|
||
```bash
|
||
# 第 1 步:加入并参会
|
||
lark-cli vc +meeting-join --meeting-number 123456789
|
||
|
||
# 第 2 步:会议结束后,查询录制(拿到 minute_token)
|
||
lark-cli vc +recording --meeting-ids <meeting.id>
|
||
|
||
# 第 3 步:查询会议纪要(总结 / 待办 / 章节 / 逐字稿)
|
||
lark-cli vc +notes --meeting-ids <meeting.id>
|
||
```
|
||
|
||
## 常见错误与排查
|
||
|
||
| 错误现象 | 根本原因 | 解决方案 |
|
||
|---------|---------|---------|
|
||
| `--meeting-number must be exactly 9 digits` | 会议号不是 9 位纯数字 | 检查是否误传了会议链接或 meeting_id |
|
||
| 会议密码错误 | `--password` 错误或未提供 | 向主持人确认会议密码 |
|
||
| 会议不存在 / 已结束 | 会议号错误或会议未进行中 | 确认会议正在进行中 |
|
||
| `HTTP 403: no permission` / `121003` | 入会前置条件不满足,通常不是单纯 scope 问题 | 依次确认:1)会议允许智能体加入;2)会议号正确;3)如有密码,已正确传入 `--password`;4)会议已开始;5)等候室 / 入会审批已放行;6)会议未禁止当前身份加入(如限制外部、限制 bot、仅特定成员可入会);确认后重试 |
|
||
| 入会被拒绝 | 等候室 / 入会审批 / 限制外部入会 | 联系主持人放行或调整会议设置 |
|
||
|
||
## 提示
|
||
|
||
- 仅在 Agent 需要**真实加入**会议(例如参会机器人、会中助手)时使用;只拉取会议数据不需要入会。
|
||
- 入会会让机器人立即出现在参会列表;若用户要求退出 / 离开 / 结束参会,直接 `+meeting-leave` 即可。参数格式不确定时可选 `--dry-run` 预览,但不是必经步骤。
|
||
- 执行成功后,立即记录返回的 `meeting.id`,用于后续 `+meeting-leave` / `+meeting-events`。
|
||
|
||
## 参考
|
||
|
||
- [lark-vc-agent-meeting-leave](lark-vc-agent-meeting-leave.md) — 对应的离会命令
|
||
- [lark-vc-agent-meeting-events](lark-vc-agent-meeting-events.md) — 会中事件流
|
||
- [lark-vc-search](../../lark-vc/references/lark-vc-search.md) — 搜索历史会议记录
|
||
- [lark-vc-recording](../../lark-vc/references/lark-vc-recording.md) — 查询 minute_token
|
||
- [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 获取会议纪要
|
||
- [lark-vc-agent](../SKILL.md) — Agent 参会能力(本 skill)
|
||
- [lark-vc](../../lark-vc/SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念)
|
||
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|