Skip to main content

lark-shared

飞书/Lark CLI 共享基础:应用配置初始化、认证登录(auth login)、身份切换(--as user/bot)、权限与 scope 管理、Permission denied 错误处理、安全规则。当用户需要第一次配置(`lark-cli config init`)、使用登录授权(`lark-cli auth login`)、遇到权限不足、切换 user/bot 身份、配置 scope、或首次使用 lark-cli 时触发。

Ir a la instalación

Datos de origen

Repositorio
MiniMax-AI/minimax-code
Última actividad en el origen
18 de septiembre de 2026 a las 11:25
Idioma detectado de SKILL.md
chino
Estrellas
589
Forks
67

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
lark-shared
version
1.0.0
description
飞书/Lark CLI 共享基础:应用配置初始化、认证登录(auth login)、身份切换(--as user/bot)、权限与 scope 管理、Permission denied 错误处理、安全规则。当用户需要第一次配置(`lark-cli config init`)、使用登录授权(`lark-cli auth login`)、遇到权限不足、切换 user/bot 身份、配置 scope、或首次使用 lark-cli 时触发。
# lark-cli 共享规则 本技能指导你如何通过lark-cli操作飞书资源, 以及有哪些注意事项。 > **mavis 适配说明 (重要)**: > > - **绑定飞书 bot(首次使用、新机器)**:用 > `mavis im channel bind <agent> --platform feishu --app-id <appId> --app-secret <appSecret>` > 写入 local-runtime 原生 Feishu channel store(详见入口 `lark-tools/SKILL.md`)。 > - **首次用户身份授权(一次性拿到推荐 scope 全集)**:需要用户身份时,由 agent 运行 > `lark-cli auth login --recommend`,UI/聊天里只展示授权 URL 给用户点击。 > - **运行时检测到缺 scope**:按 §[Agent 代理发起认证](#agent-代理发起认证) > 的 canonical 模板执行(`--no-wait --json` 取 URL → 后台 `--device-code` 等用户)。**不要** curl > runtime、不要再用 `--domain`。仅在推荐 scope 集合之外的高敏感 scope 才会触发这条路径。 > - 本文件其余部分(身份选择原则、scope 概念、更新检查、安全规则)完全适用,无需特殊适配。 ## 配置初始化 mavis 中**首次绑定 bot** 走 local-runtime channel bind(详见 `lark-tools/SKILL.md`)。`lark-cli config init` 只在官方 CLI store 尚未初始化、且你需要直接运行 terminal `lark-cli` 时使用。 > 仅当 local-runtime 未绑定 Feishu bot 时才需要这一步;已有 appId 时跳过。 ## 认证 ### 身份类型 两种身份类型,通过 `--as` 切换: | 身份 | 标识 | 获取方式 | 适用场景 | | ------------- | ----------- | --------------------------------------------------------- | ------------------------------------ | | user 用户身份 | `--as user` | `lark-cli auth login --recommend`(首次)+ `--scope` 增量 | 访问用户自己的资源(日历、云空间等) | | bot 应用身份 | `--as bot` | 自动,只需 appId + appSecret | 应用级操作,访问bot自己的资源 | ### 身份选择原则 输出的 `[identity: bot/user]` 代表当前身份。bot 与 user 表现差异很大,需确认身份符合目标需求: - **Bot 看不到用户资源**:无法访问用户的日历、云空间文档、邮箱等个人资源。例如 `--as bot` 查日程返回 bot 自己的(空)日历 - **Bot 无法代表用户操作**:发消息以应用名义发送,创建文档归属 bot - **Bot 权限**:只需在飞书开发者后台开通 scope,无需 `auth login` - **User 权限**:后台开通 scope + 用户通过 `auth login` 授权,两层都要满足 ### 权限不足处理 遇到权限相关错误时,**根据当前身份类型采取不同解决方案**。 错误响应中包含关键信息: - `permission_violations`:列出缺失的 scope (N选1) - `console_url`:飞书开发者后台的权限配置链接 - `hint`:建议的修复命令 #### Bot 身份(`--as bot`) 将错误中的 `console_url` 提供给用户,引导去后台开通 scope。**禁止**对 bot 执行 `auth login`。 #### User 身份(`--as user`) ```bash # 首次授权(推荐 / 默认动作):一次性拿到飞书会自动批准的推荐 scope 全集 lark-cli auth login --recommend # 增量授权:仅当报错说缺某个推荐范围之外的高敏感 scope 时使用 lark-cli auth login --scope "<missing_scope>" ``` **规则**: - 首次或缺少基础能力时**默认走 `--recommend`**——一次过、飞书自动批、覆盖 80%+ 日常 domain。 - 仅当运行时报错明确缺**推荐范围之外**的 scope(如 `contact:user:search`、`search:message`、`im:message.group_msg:get_as_user` 等高敏感 scope)才走 `--scope` 增量。 - **不要再用 `--domain`**——按 domain 申请会让用户每用一个新模块就被弹一次授权,体验差。`--recommend` 已经覆盖各 domain 的常用 scope。 - 多次 login 的 scope 会累积(增量授权),`--recommend` 之上再叠 `--scope` 是安全的。 - 在 mavis 中,local-runtime 负责 bot 绑定;用户 OAuth 仍由 `lark-cli auth login --recommend` 或增量 `--scope` 完成。 #### Agent 代理发起认证 > **Hard rule**:禁止把 `lark-cli auth login` > 整条命令贴给用户让他自己跑。你有 bash,命令你跑;用户只负责浏览器点同意按钮。 `lark-cli` 已为 AI agent 设计非交互模式:`--no-wait --json` 立即返回 `verification_url` + `device_code`(不阻塞),再后台跑 `--device-code` 等用户完成。canonical 流程: ```bash # 1) 启动 device flow,立即拿 verification_url(不阻塞,10 分钟有效) # 缺基础 scope 用 --recommend;缺推荐之外的高敏感 scope 用 --scope "<name>" RESP=$(lark-cli auth login --no-wait --json --scope "search:message") URL=$(echo "$RESP" | jq -r .verification_url) CODE=$(echo "$RESP" | jq -r .device_code) # 2) 把 URL 发给用户点同意(user_code 可一并给出便于核对) echo "请点击授权链接:$URL" # 3) 后台跑 device-code 等用户完成,token 自动落到全局 lark-cli store nohup lark-cli auth login --device-code "$CODE" --json \ > /tmp/lark-auth-$$.log 2>&1 & disown ``` ❌ 反例:把 `lark-cli auth login --scope "..."` 命令贴给用户、让他跑完把输出贴回来。 授权完成后 token 自动写入全局 lark-cli store(`~/.lark-cli/` + `~/Library/Application Support/lark-cli/*.enc`),终端 lark-cli 后续直接复用。 ## 更新检查 lark-cli 命令执行后,如果检测到新版本,JSON 输出中会包含 `_notice.update` 字段(含 `message`、`command` 等)。 **当你在输出中看到 `_notice.update` 时,完成用户当前请求后,主动提议帮用户更新**: 1. 告知用户当前版本和最新版本号 2. 提议执行更新(CLI 和 Skills 需要同时更新): ```bash npm update -g @larksuite/cli && npx skills add larksuite/cli -g -y ``` 3. 更新完成后提醒用户:**退出并重新打开 AI Agent**以加载最新 Skills **规则**:不要静默忽略更新提示。即使当前任务与更新无关,也应在完成用户请求后补充告知。 ## 安全规则 - **禁止输出密钥**(appSecret、accessToken)到终端明文。 - **写入/删除操作前必须确认用户意图**。 - 用 `--dry-run` 预览危险请求。
Ver en GitHub