最近在接飞书多维表格写入接口时,踩到了一个很容易忽略的坑:开放平台里把多维表格相关权限几乎都勾上了,但 API 还是写不进去。
更容易让人误判的是,这种情况下往往不是“完全没权限”,而是会出现一种很迷惑的状态:
- 能拿到
tenant_access_token - 能读取字段列表
- 能读取现有记录
- 只有新增记录时报错
返回的错误通常像这样:
{
"code": 91403,
"msg": "Forbidden"
}
一开始我也怀疑过是不是 n8n 社区节点封装有问题,或者请求 body 写错了。但后来直接用飞书原生 OpenAPI 测了一次,结果还是一样。说明问题不在 SDK,也不在社区节点,而在飞书权限本身。
真正容易漏掉的是文档级授权
这次排查最关键的结论是:
飞书开放平台里把多维表格权限勾上,只代表应用具备申请访问能力,不代表这张具体的多维表已经允许这个应用可编辑。
很多人会停在“开放平台权限管理”这一步,以为权限就已经配完了。其实还差一层文档级授权,而且这层最容易漏掉。
进入这张多维表格所在的 Base,还需要手动执行:
添加文档应用 -> 选择应用 -> 给可编辑权限
如果这一步没做,或者之前只加成了只读,就很容易出现“能读不能写”的假象。
为什么这个问题特别误导人
因为它不是那种一眼就能看出来的权限缺失。
在很多场景里,应用其实已经具备了一部分访问能力,所以你会看到:
- 表结构能读
- 字段列表能读
- 现有记录能读
只有真正尝试写入,比如新增记录、更新记录时,才会被拒绝。
这时候如果只盯着开放平台 scope,很容易在错误的方向上反复排查。
建议的排查顺序
以后再碰到飞书多维表格写入失败,我会优先看下面这四项。
1. 开放平台权限是否已勾选
先确认应用里多维表格相关权限已经打开。
但这只是第一步,不是最后一步。
2. 新权限是否已经发布
飞书开放平台里勾完权限以后,如果没有重新发布版本,线上权限可能根本没生效。
这一点也非常常见。
3. 多维表格里有没有“添加文档应用”
重点中的重点。
不要只在开放平台里检查,而是一定要到这张具体的 Base 里看。
如果应用没有被添加到文档里,或者之前添加时只给了读取能力,写入一样会失败。
4. 应用是不是“可编辑”,而不是“可阅读”
这是最容易忽略的细节。
看到“已经加了应用”不代表能写,一定要确认给的是:
可编辑
而不是:
可阅读
一句话记住这个坑
如果飞书多维表格出现下面这种情况:
- 能读字段
- 能读记录
- 不能新增记录
- 报
91403 Forbidden
优先别先怀疑 SDK,也别先怪社区节点。
先去检查这张多维表格有没有执行:
添加文档应用 -> 选择应用 -> 可编辑
这一步,真的非常容易漏掉。
最后的结论
飞书多维表格写入权限其实是两层的:
- 开放平台权限:决定应用有没有能力访问多维表格
- 文档里的应用授权:决定它能不能真正对这张表写入
少任何一层,都可能出现“能读不能写”的假象。
如果你最近也在接 Feishu Bitable API、n8n 或自建自动化脚本,希望这条记录能帮你少走一点弯路。