Feishu Bitable

alextangson/feishu_skills/feishu-bitable

作者 alextangson7569ef14adee11b83b6b486122838385c65bdd17无许可证64 个星标收录于 2026年10月9日更新于 2026年10月9日仓库6个月前更新

飞书多维表格操作。记录 CRUD、字段管理、视图、权限、公式、关联。

AI 生成的概览

飞书多维表格 API 使用参考,涵盖记录、字段、数据表、视图与权限操作。

功能
该技能说明如何通过开放 API 操作飞书多维表格,内容包括认证与 Token 获取、记录增删改查与批量操作、字段类型格式、字段与数据表管理、视图以及协作者权限。它提供接口清单、请求体示例、日期转换说明和分页方法。同时列出不支持 API 写入的字段类型,并指出不存在统计汇总接口,建议在客户端计算或使用公式字段。
适用场景
当智能体需要通过 API 读写飞书多维表格数据、创建或修改数据表与字段、管理视图或设置协作者权限时使用。也适用于排查字段类型格式、Token 刷新或分页问题。
运行要求
需要访问飞书开放 API 的网络环境,配置 FEISHU_APP_ID 与 FEISHU_APP_SECRET 环境变量,并具备 bitable:app 或 bitable:app:readonly 权限。文档引用了共享脚本 ./scripts/get_feishu_token.sh 和本地 Token 缓存文件,但自身不附带脚本。

飞书多维表格

通过 Bitable API 操作数据、字段、视图和权限。

Base URL: https://open.feishu.cn/open-apis/bitable/v1

认证与 Token 获取

从 feishu_skills 根目录执行共享脚本:

bash
TOKEN="$(./scripts/get_feishu_token.sh)"

请求头统一使用 Authorization: Bearer ${TOKEN}。

如果业务接口返回 token 无效、过期或 401,强制刷新后仅重试一次原请求:

bash
TOKEN="$(./scripts/get_feishu_token.sh --force-refresh)"

环境变量:

  • FEISHU_APP_ID
  • FEISHU_APP_SECRET

本地缓存: ./.feishu_token_cache.json(未过期直接复用,默认提前 5 分钟刷新)

关键参数:

  • app_token: 多维表格 URL 中 /base/ 后的字符串
  • table_id: 调用列表 API 获取

记录操作

API端点说明
新增单条POST /apps/{app_token}/tables/{table_id}/records-
批量新增POST .../records/batch_create最多 500 条,支持 Upsert
更新PUT .../records/{record_id}-
批量更新POST .../records/batch_update最多 500 条
批量删除POST .../records/batch_delete最多 500 条
查询POST .../records/search支持 filter/sort/分页

分页查询全部记录(单次最多 500 条,循环直到 has_more: false):

python
page_token = Noneall_records = []while True:    body = {"page_size": 500}    if page_token:        body["page_token"] = page_token    resp = post(".../records/search", json=body)    all_records.extend(resp["data"]["items"])    if not resp["data"].get("has_more"):        break    page_token = resp["data"]["page_token"]

请求示例:

json
{  "fields": {    "名称": "测试",    "金额": 100,    "进度": 0.75,    "评分": 4,    "日期": 1770508800000,    "状态": "进行中",    "标签": ["重要", "紧急"],    "完成": true,    "负责人": [{"id": "ou_xxx"}],    "电话": "13800138000",    "链接": {"text": "官网", "link": "https://example.com"}  }}

⚠️ 数值不要传字符串,日期必须是 13 位毫秒时间戳。


字段类型格式

typeui_type中文名写入格式示例
1Text多行文本字符串"办公用品"
1Email邮箱字符串"[email protected]"
2Number数字数值100
2Currency货币数值1280.50
2Progress进度数值(0~1)0.25 (25%)
2Rating评分数值(1~5)3
3SingleSelect单选字符串"支出" (自动创建选项)
4MultiSelect多选字符串数组["餐饮","交通"]
5DateTime日期毫秒时间戳1770508800000
7Checkbox复选框布尔值true
11User人员对象数组[{"id":"ou_xxx"}]
13Phone电话字符串"13800138000"
15Url超链接对象{"text":"名称","link":"https://..."}
17Attachment附件对象数组[{"file_token":"xxx"}]
18SingleLink单向关联字符串数组["recuxxx"]
21DuplexLink双向关联字符串数组["recuxxx"]
22Location地理位置字符串"116.397,39.903"

不支持 API 写入: 公式、查找引用、创建时间、修改人、自动编号

日期格式转换:

python
import datetimets = int(datetime.datetime(2026, 2, 9).timestamp() * 1000)# → 1770508800000

字段管理

API端点说明
获取字段列表GET .../fields返回 type 和 ui_name
新增字段POST .../fields{"field_name":"新字段","type":1}
更新字段PUT .../fields/{field_id}修改单选需提供完整 property
删除字段DELETE .../fields/{field_id}-

公式字段示例:

json
{  "type": 20,  "field_name": "利润",  "property": {"formula_expression": "[营收]-[成本]"}}

关联字段示例:

json
{  "type": 18,  "field_name": "关联客户",  "property": {"table_id": "tblXXX", "multiple": true}}

数据表管理

API端点说明
创建多维表格POST /apps{"name":"数据库名称"}
列出数据表GET /apps/{app_token}/tables-
新增数据表POST /apps/{app_token}/tables{"table":{"name":"表名"}}
批量新增表POST .../tables/batch_create最多 10 张表
删除数据表DELETE .../tables/{table_id}-
复制数据表POST .../tables/{table_id}/copy-

⚠️ 权限管理(重要):

  • 通过 API 创建的表格默认只对机器人可见
  • 创建后需添加用户为协作者:
POST /permissions/{app_token}/members{  "member_type": "user",  "member_id": "ou_xxx",  "perm": "full_access"}
  • 权限类型:view / edit / full_access

视图管理

API端点说明
列出视图GET .../tables/{table_id}/views-
创建视图POST .../tables/{table_id}/views{"view_name":"新视图","view_type":"grid"}
删除视图DELETE .../views/{view_id}-

视图类型: grid(表格) / kanban(看板) / gallery(画册) / gantt(甘特图)


权限管理

API端点说明
创建协作者POST /apps/{app_token}/roles/{role_id}/members/batch_create-
删除协作者POST .../members/batch_delete-
更新权限PUT /apps/{app_token}/roles/{role_id}-

角色类型: owner / editor / reader


⚠️ 不存在的接口

/apps/:app_token/tables/:table_id/statistics 该接口不存在,飞书官方文档中未提供统计汇总 API。

如需统计数据(如求和、计数),建议:

  1. 用 POST .../records/search 拉取全量记录后在客户端计算
  2. 在多维表格中创建公式字段(如 SUM、COUNT)后通过 API 读取字段值

最佳实践

  1. 批量操作优先(减少 API 调用)
  2. 字段类型严格匹配(避免写入失败)
  3. 日期用毫秒时间戳(Python: int(datetime.timestamp() * 1000))
  4. 关联字段实现关系型能力
  5. 创建表格后立即添加用户为协作者(避免不可见)
  6. 单选字段自动创建选项(直接写入选项文本即可)

测试验证

已通过实测验证的 15 种字段类型:

  • 文本、进度、多选、单选、日期、复选框、电话、人员、超链接
  • 邮箱、货币、评分、地理位置、单向关联、双向关联

测试表格:https://jvbmlo28x0.feishu.cn/base/YdOpb47PvalSbQsHPyXc7LrNnUh

来源与署名

来源:alextangson/feishu_skills位于feishu-bitable提交7569ef1

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架