🔄 卡若AI 同步 2026-03-02 02:45 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个
This commit is contained in:
@@ -368,7 +368,7 @@ python3 脚本/upload_json_to_feishu_doc.py /path/to/xxx.json --parent <wiki_nod
|
||||
|
||||
- **判定为多维表格时**:仅调用 bitable 创建接口,产出多维表格链接,不建文档。
|
||||
- **判定为文档时**:block_type 2/3/4/6 等 → 对应正文/标题块;block_type 43 → 新建多维表格并嵌入该文档。
|
||||
- 创建多维表格需应用具备权限并完成用户授权:**bitable:app**、**base:app:create**(飞书开放平台 → 权限配置 → 勾选并让用户重新授权)。
|
||||
- 创建多维表格需开通**用户身份权限**(非应用身份):**bitable:app**、**base:app:create**,发布版本后**用户重新授权**。操作说明见 `参考资料/飞书多维表格权限开通说明_给卡罗维亚.md`(可找卡罗维亚开通权限)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
60
02_卡人(水)/水桥_平台对接/飞书管理/参考资料/飞书多维表格权限开通说明_给卡罗维亚.md
Normal file
60
02_卡人(水)/水桥_平台对接/飞书管理/参考资料/飞书多维表格权限开通说明_给卡罗维亚.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 飞书「创建多维表格」权限开通说明(给卡罗维亚)
|
||||
|
||||
> 用途:上传 JSON 时若类型为多维表格,需在飞书创建多维表格;当前报错缺少**用户身份**下的 `bitable:app`、`base:app:create`。请按下列步骤在开放平台开通,并让使用人重新授权。
|
||||
|
||||
---
|
||||
|
||||
## 一、问题现象
|
||||
|
||||
- 运行 `upload_json_to_feishu_doc.py` 上传「水流程规划」等 JSON 时,检测为多维表格并尝试创建,接口返回:
|
||||
- **错误**:`required one of these privileges under the user identity: [bitable:app, base:app:create]`
|
||||
- 说明:创建多维表格接口要求的是**用户身份权限**(user_access_token),不是应用身份权限。
|
||||
|
||||
---
|
||||
|
||||
## 二、开通步骤(开放平台侧)
|
||||
|
||||
1. **打开权限管理**
|
||||
- 登录 [飞书开放平台](https://open.feishu.cn) → 进入应用「卡若私域」→ 左侧 **权限管理**。
|
||||
|
||||
2. **点击「开通权限」**
|
||||
- 在弹窗顶部的 **Tab 切到「用户身份权限 user_access_token」**(不要用「应用身份权限」)。
|
||||
- 搜索框输入:`bitable` 或 `base:app`。
|
||||
|
||||
3. **勾选并保存**
|
||||
- 勾选:**查看、评论、编辑和管理多维表格**(权限 ID:`bitable:app`)。
|
||||
- 若有 **创建多维表格 / base:app:create** 相关权限,一并勾选。
|
||||
- 保存后,在「版本管理与发布」中**发布新版本**(否则权限不生效)。
|
||||
|
||||
4. **提醒**
|
||||
- 页面提示「版本发布后,当前修改方可生效」→ 务必完成发布。
|
||||
|
||||
---
|
||||
|
||||
## 三、用户重新授权(必须)
|
||||
|
||||
- 权限开通并发布后,**已授权用户不会自动获得新权限**,必须**重新走一遍授权**,拿到新的 access_token / refresh_token 才会带上述权限。
|
||||
- 操作任选其一:
|
||||
- **方式 A**:本机运行一次 `python3 脚本/auto_log.py`,在需要时按提示用飞书扫码/授权(会用新 scope 拉授权页)。
|
||||
- **方式 B**:用浏览器打开本地服务 `http://localhost:5050` 的授权入口,重新授权一次。
|
||||
- 授权成功后,再执行上传脚本即可创建多维表格。
|
||||
|
||||
---
|
||||
|
||||
## 四、脚本侧已做的修改
|
||||
|
||||
- **auto_log.py**:授权链接的 `scope` 已增加 `bitable:app`、`base:app:create`,新授权会申请多维表格权限。
|
||||
- **feishu_api.py**:`/api/auth/url` 返回的授权地址已带上相同 scope。
|
||||
- 无需改脚本即可支持「上传 JSON → 按类型创建多维表格」,只需完成上述权限开通 + 重新授权。
|
||||
|
||||
---
|
||||
|
||||
## 五、小结(发给卡罗维亚/管理员)
|
||||
|
||||
- **要开的权限**:用户身份权限 → `bitable:app`(及若有则勾选 `base:app:create`)。
|
||||
- **要做的动作**:开通 → 发布新版本 → 通知使用人**重新授权**一次。
|
||||
- **参考链接**:飞书错误说明 https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-resolve-error-99991679
|
||||
|
||||
---
|
||||
|
||||
**文档维护**:卡若AI 水桥 · 2026-03-02
|
||||
@@ -31,7 +31,8 @@ CONFIG = {
|
||||
'TOKEN_FILE': os.path.join(os.path.dirname(__file__), '.feishu_tokens.json')
|
||||
}
|
||||
|
||||
AUTH_URL = f"https://open.feishu.cn/open-apis/authen/v1/authorize?app_id={CONFIG['APP_ID']}&redirect_uri=http%3A//localhost%3A{CONFIG['SERVICE_PORT']}/api/auth/callback&scope=wiki:wiki+docx:document+drive:drive"
|
||||
# 授权 scope:wiki/docx/drive 用于日志与文档;bitable:app、base:app:create 用于创建多维表格(上传 JSON 按类型创建)
|
||||
AUTH_URL = f"https://open.feishu.cn/open-apis/authen/v1/authorize?app_id={CONFIG['APP_ID']}&redirect_uri=http%3A//localhost%3A{CONFIG['SERVICE_PORT']}/api/auth/callback&scope=wiki:wiki+docx:document+drive:drive+bitable:app+base:app:create"
|
||||
WIKI_URL = f"https://cunkebao.feishu.cn/wiki/{CONFIG['WIKI_TOKEN']}"
|
||||
|
||||
# ============ Token管理(静默) ============
|
||||
|
||||
@@ -179,12 +179,16 @@ def health():
|
||||
'timestamp': datetime.now().isoformat()
|
||||
})
|
||||
|
||||
# 用户授权 scope:含 wiki/docx/drive 与 多维表格 bitable:app、base:app:create(上传 JSON 创建多维表格用)
|
||||
AUTH_SCOPE = "wiki:wiki+docx:document+drive:drive+bitable:app+base:app:create"
|
||||
|
||||
@app.route('/api/auth/url')
|
||||
def auth_url():
|
||||
redirect_uri = request.args.get('redirect_uri', 'http://localhost:5050/api/auth/callback')
|
||||
url = f"https://open.feishu.cn/open-apis/authen/v1/index?redirect_uri={urllib.parse.quote(redirect_uri)}&app_id={CONFIG['APP_ID']}&scope={urllib.parse.quote(AUTH_SCOPE)}"
|
||||
return jsonify({
|
||||
'status': 'ok',
|
||||
'auth_url': f"https://open.feishu.cn/open-apis/authen/v1/index?redirect_uri={urllib.parse.quote(redirect_uri)}&app_id={CONFIG['APP_ID']}"
|
||||
'auth_url': url
|
||||
})
|
||||
|
||||
@app.route('/api/auth/callback')
|
||||
|
||||
@@ -252,7 +252,8 @@ def main():
|
||||
pass
|
||||
else:
|
||||
print(f"❌ 多维表格创建失败:{err or '未知错误'}")
|
||||
print(" 请检查应用是否具备「创建多维表格」权限(飞书开放平台 → 权限配置)")
|
||||
print(" 需开通「用户身份权限」下的 bitable:app、base:app:create,并让用户重新授权。")
|
||||
print(" 详见:02_卡人(水)/水桥_平台对接/飞书管理/参考资料/飞书多维表格权限开通说明_给卡罗维亚.md")
|
||||
sys.exit(1)
|
||||
print("=" * 50)
|
||||
return
|
||||
|
||||
@@ -194,3 +194,4 @@
|
||||
| 2026-03-02 00:25:52 | 🔄 卡若AI 同步 2026-03-02 00:25 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-03-02 02:30:31 | 🔄 卡若AI 同步 2026-03-02 02:30 | 更新:金仓、水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-03-02 02:35:50 | 🔄 卡若AI 同步 2026-03-02 02:35 | 更新:水桥平台对接、卡木、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-03-02 02:41:10 | 🔄 卡若AI 同步 2026-03-02 02:41 | 更新:水桥平台对接、卡木、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
|
||||
@@ -197,3 +197,4 @@
|
||||
| 2026-03-02 00:25:52 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-02 00:25 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-02 02:30:31 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-02 02:30 | 更新:金仓、水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-02 02:35:50 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-02 02:35 | 更新:水桥平台对接、卡木、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-02 02:41:10 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-02 02:41 | 更新:水桥平台对接、卡木、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
|
||||
Reference in New Issue
Block a user