lark-base-base-copy.md 3.3 KB

base +base-copy

前置条件: 先阅读 ../lark-shared/SKILL.md 了解认证、全局参数和安全规则。

复制一个已有 Base;可选只复制结构,不复制内容。

推荐命令

lark-cli base +base-copy \
  --base-token app_xxx \
  --name "Copied Base"

lark-cli base +base-copy \
  --base-token app_xxx \
  --name "Copied Base" \
  --folder-token fld_xxx \
  --time-zone Asia/Shanghai \
  --without-content

参数

参数 必填 说明
--base-token <token> 源 Base Token
--name <name> 新 Base 名称
--folder-token <token> 目标文件夹 token
--time-zone <tz> 时区,如 Asia/Shanghai
--without-content 只复制结构,不复制内容

API 入参详情

HTTP 方法和路径:

POST /open-apis/base/v3/bases/:base_token/copy

返回重点

  • 返回 base
  • CLI 会额外标记 copied: true
  • 回复结果时,必须主动返回新 Base 的可访问链接:
    • 优先使用返回结果中的 base.url
    • 同时返回新 Base 的 token;字段名以实际返回为准,常见为 base_tokenapp_token
    • 如果本次返回没有 url,至少返回新 Base 的名称和 token

[!IMPORTANT] 如果 Base 是以应用身份(bot)复制出来的,agent 在复制成功后应默认继续使用 bot 身份,为当前可用的 user 身份添加该 Base 的 full_access(管理员)权限。 推荐流程:

  1. 先用 lark-cli contact +get-user 获取当前用户信息,并从返回结果中读取该用户的 open_id
  2. 再切回 bot 身份,使用这个 open_id 给该用户授权该 Base 的 full_access(管理员)权限

如果 lark-cli contact +get-user 无法执行,或者本地没有可用的 user 身份、拿不到当前用户的 open_id,则应视为“本地没有可用的 user 身份”,明确说明因此未完成授权。

回复复制结果时,除 base token 和可访问链接外,还必须明确告知用户授权结果:

  • 如果授权成功:直接说明当前 user 已获得该 Base 的管理员权限
  • 如果本地没有可用的 user 身份:明确说明因此未完成授权
  • 如果授权失败:明确说明 Base 已复制成功,但授权失败,并透出失败原因;同时提示用户可以稍后重试授权,或继续使用应用身份(bot)处理该 Base

如果授权未完成,应继续给出后续引导:用户可以稍后重试授权,也可以继续使用应用身份(bot)处理该 Base;如果希望后续改由自己管理,也可将 Base owner 转移给该用户。

仍然不要擅自执行 owner 转移。 如果用户需要把 owner 转给自己,必须单独确认。

工作流

[!CAUTION] 这是写入操作 — 执行前必须向用户确认。

  1. 先确认源 Base Token。
  2. --name--folder-token--time-zone 都是可选项;用户没要求时不要为这些可选参数额外追问。
  3. 只要结构时,显式传 --without-content
  4. 复制成功后,整理并返回:新 Base 名称、token,以及响应中已有的可访问链接。

参考