Skip to content

【Feature request】支持直接通过多维表格记录链接直接读取记录内容,而不是多个链接才能读取。 #877

Description

@gminibird

Feature Description

支持直接通过多维表格记录链接读取记录内容,例如给 base +record-get 增加 --url 参数,或新增一个记录链接解析 shortcut。

目前用户从 Lark/飞书多维表格页面复制某条记录时,拿到的链接形如:

https://example.sg.larksuite.com/record/record_link_token_xxx

但这个 record_link_token_xxx 不是 base +record-get 需要的真实 record_id。当前 shortcut 需要用户手动提供:

lark-cli base +record-get \
  --base-token base_token_xxx \
  --table-id table_id_xxx \
  --record-id record_id_xxx

其中 record_id_xxx 必须是内部记录 ID,例如 rec_xxx。
这导致用户无法直接用从文档页面复制出来的记录链接读取记录内容。现在需要提供原多维表格地址+record记录两个链接AI Agent才能读到这个记录。

Motivation

复制单条记录链接是用户在多维表格 UI 中最自然的操作。很多场景下,用户或 AI Agent 拿到的就是一个记录链接,而不是 base_token、table_id、record_id 这些底层参数。

现在为了读取一条记录,需要绕行很多步骤:

从 Wiki/Base 文档链接解析出 base_token_xxx
从原始表格 URL 里提取 table_id_xxx
从记录链接里拿到的 record_link_token_xxx 不能直接作为 record_id
需要通过 base +record-list 拉取记录,再用 base +record-share-link-create 批量生成分享链接
将生成的分享链接和用户复制的链接做匹配,反推出真实的 record_id_xxx
最后才能调用 base +record-get
这对自动化和 AI Agent 场景很不友好。用户明明复制了“一条记录”的链接,但 CLI 无法直接读取这条记录,还必须依赖另一个表格文档链接来补齐 table/base 信息。

Proposed Solution

给 base +record-get 增加 --url 参数,支持直接传入记录链接:

lark-cli base +record-get
--url "https://example.sg.larksuite.com/record/record_link_token_xxx"
当传入 --url 时,lark-cli 自动解析该记录链接对应的:

base_token_xxx
table_id_xxx
record_id_xxx
并返回该记录的详细内容。

也可以考虑新增一个解析 shortcut:

lark-cli base +record-resolve
--url "https://example.sg.larksuite.com/record/record_link_token_xxx"
返回结构类似:

{
  "base_token": "base_token_xxx",
  "table_id": "table_id_xxx",
  "record_id": "record_id_xxx"
}

这样用户可以再调用:

lark-cli base +record-get \
  --base-token base_token_xxx \
  --table-id table_id_xxx \
  --record-id record_id_xxx

理想情况下,base +record-get --url 可以一步完成解析和读取。

Alternatives Considered

使用当前 base +record-get --base-token --table-id --record-id:可行,但用户从 UI 复制的记录链接里没有真实 record_id,需要额外反查。

通过 base +record-list 加 base +record-share-link-create 反推 record_id:可行,但流程很重,需要分页、批量生成分享链接、匹配链接 token;读取一条记录时成本过高。

要求用户同时提供表格链接和记录链接:可行,但不符合用户直觉。用户复制出来的记录链接本身就应该足以定位一条记录。

从记录链接 token 中直接当作 record_id 使用:不可行,API 会报错,因为该 token 不是 rec_xxx 格式的内部记录 ID。

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain/basePR touches the base domainenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions