协作办公
操作钉钉 AI 表格(.able 多维表格)时,管理工作表…
当需要通过钉钉开放平台 Notable API 对钉钉 AI 表格进行工作表、字段和记录的增删改查等操作时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
操作钉钉 AI 表格(.able 多维表特定
解决思路
- 先识别本次任务类型,例如:列工作表、查询单个工作表、创建工作表、删除工作表、列出字段、创建字段、更新字段、删除字段、新增记录、查询记录列表、更新记录、删除记录。
- 按本次任务校验所需配置:通过 `bash scripts/dt_helper.sh --get KEY` 读取;仅校验本任务必须项。
- 若缺少某项配置,一次性询问用户所有缺失值,用 `bash scripts/dt_helper.sh --set KEY=VALUE` 写入。
- 所有任务通用必需配置为:`DINGTALK_APP_KEY`、`DINGTALK_APP_SECRET`、`DINGTALK_MY_USER_ID`。
- 涉及任何 AI 表格 API 调用时必须有 `DINGTALK_MY_OPERATOR_ID`;若缺失,先用 `bash scripts/dt_helper.sh --to-unionid` 自动转换并写回。
- 工作表/字段/记录相关操作必须有 `DINGTALK_AI_TABLE_BASE_ID`;若缺失,要求用户提供 AI 表格链接并提取 `/nodes/<base_id>`。
- 未通过“本次任务配置校验”前,不得进入 API 调用步骤。
- 凭证禁止在输出中完整打印;确认时仅显示前 4 位 + `****`。
- 获取 Token / operatorId:直接调用 `bash scripts/dt_helper.sh`,token 获取与缓存细节无需关心。
- 获取 `DINGTALK_APP_KEY` 和 `DINGTALK_APP_SECRET`:钉钉开放平台 → 应用管理 → 凭证信息。
- 获取 `DINGTALK_MY_USER_ID`:管理后台 → 通讯录 → 成员管理 → 点击姓名查看(当前用户的企业员工 ID,即 userId/staffId)。
- 获取 `DINGTALK_MY_OPERATOR_ID`:当前用户的 unionId(operatorId),首次由 `bash scripts/dt_helper.sh --to-unionid` 自动转换并写入。
- 获取 `unionId`:通过 `bash scripts/dt_helper.sh --to-unionid <userid>` 获取跨企业/跨应用唯一标识。
- 获取 `base_id`:AI 表格的 nodeId,从 AI 表格分享链接 `https://alidocs.dingtalk.com/i/nodes/<base_id>` 提取。
- 执行操作时,凡是包含变量替换、管道或多行逻辑的命令,写入 `/tmp/<task>.sh` 再 `bash /tmp/<task>.sh` 执行。
- 不要把多行命令直接粘到终端里(终端工具会截断);不要用 `<<'EOF'` 语法(heredoc 在工具中同样会被截断导致变量丢失)。
- 使用执行脚本模板:`#!/bin/bash`、`set -e`、`HELPER="./scripts/dt_helper.sh"`、`NEW_TOKEN=$(bash "$HELPER" --token)`、`OPERATOR_ID=$(bash "$HELPER" --get DINGTALK_MY_OPERATOR_ID)`、`BASE_ID=$(bash "$HELPER" --get DINGTALK_AI_TABLE_BASE_ID)`,然后追加具体 API 调用。
- 列出工作表示例:执行 `SHEETS=$(curl -s -X GET "https://api.dingtalk.com/v1.0/notable/bases/${BASE_ID}/sheets?operatorId=${OPERATOR_ID}" -H "x-acs-dingtalk-access-token: $NEW_TOKEN")`,再 `echo "工作表列表: $SHEETS"`。
- Token 失效处理:dt_helper 仅按时间缓存,无法感知 token 被提前吊销;若 API 返回 401(token 无效/过期),用 `NEW_TOKEN=$(bash "$HELPER" --token --nocache)` 跳过缓存强制重新获取。
- 调用 AI 表格接口时使用 Notable API(`/v1.0/notable`),不要把 `.able` 文件当普通电子表格处理。
- 构造记录时,`fields` 中使用字段名称(非字段 ID)作键。
- 字段定义包含名称和类型,类型包括 `text`、`number`、`date`。
- 工作表是表格内的单张表,包含字段和记录。
- 所有接口必须传 `operatorId` 参数,其为 unionId。
- 确定好要做什么之后,用 `grep -A ...` 从 `references/api.md` 中提取对应章节的完整 API 细节(请求格式、参数说明、返回值示例)。
- 按章节查阅 API 细节的命令:列出工作表 `grep -A 20 "^## 1. 列出工作表" references/api.md`;查询单个工作表 `grep -A 15 "^## 2. 查询单个工作表" references/api.md`;创建工作表 `grep -A 30 "^## 3. 创建工作表" references/api.md`;删除工作表 `grep -A 15 "^## 4. 删除工作表" references/api.md`;列出字段 `grep -A 25 "^## 5. 列出字段" references/api.md`;创建字段 `grep -A 28 "^## 6. 创建字段" references/api.md`;更新字段 `grep -A 15 "^## 7. 更新字段" references/api.md`;删除字段 `grep -A 15 "^## 8. 删除字段" references/api.md`;新增记录 `grep -A 25 "^## 9. 新增记录" references/api.md`;查询记录列表 `grep -A 40 "^## 10. 查询记录列表" references/api.md`;更新记录 `grep -A 18 "^## 11. 更新记录" references/api.md`;删除记录 `grep -A 15 "^## 12. 删除记录" references/api.md`;错误码 `grep -A 10 "^## 错误码" references/api.md`;所需应用权限 `grep -A 6 "^## 所需应用权限" references/api.md`。
适用边界 · 注意事项
- 不要用于普通电子表格或非 `.able`/多维表格场景。
- 没有钉钉开放平台应用凭证、应用权限或无法获取 operatorId/base_id 时不要使用。
- 缺少 `scripts/dt_helper.sh` 或 `references/api.md` 等技能资源时不要直接执行。