@yanhaidao/wecom 2.3.160 → 2.3.180
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +235 -399
- package/SKILLS_CAL.md +895 -0
- package/SKILLS_DOC.md +2136 -0
- package/changelog/v2.3.18.md +22 -0
- package/index.ts +39 -3
- package/package.json +2 -3
- package/src/agent/handler.event-filter.test.ts +11 -0
- package/src/agent/handler.ts +732 -643
- package/src/app/account-runtime.ts +46 -20
- package/src/app/index.ts +19 -1
- package/src/capability/calendar/SKILLS_CHECKLIST.md +251 -0
- package/src/capability/calendar/client.ts +815 -0
- package/src/capability/calendar/index.ts +3 -0
- package/src/capability/calendar/schema.ts +417 -0
- package/src/capability/calendar/tool.ts +417 -0
- package/src/capability/calendar/types.ts +309 -0
- package/src/capability/doc/client.ts +567 -62
- package/src/capability/doc/schema.ts +419 -318
- package/src/capability/doc/tool.ts +1510 -1178
- package/src/capability/doc/types.ts +130 -14
- package/src/capability/mcp/index.ts +10 -0
- package/src/capability/mcp/schema.ts +107 -0
- package/src/capability/mcp/tool.ts +170 -0
- package/src/capability/mcp/transport.ts +394 -0
- package/src/channel.ts +70 -28
- package/src/config/schema.ts +71 -102
- package/src/outbound.test.ts +91 -14
- package/src/outbound.ts +143 -30
- package/src/runtime/reply-orchestrator.test.ts +35 -2
- package/src/runtime/reply-orchestrator.ts +14 -2
- package/src/runtime/session-manager.ts +20 -6
- package/src/runtime/source-registry.ts +165 -0
- package/src/transport/bot-ws/media.ts +269 -0
- package/src/transport/bot-ws/reply.test.ts +85 -17
- package/src/transport/bot-ws/reply.ts +109 -21
- package/src/transport/bot-ws/sdk-adapter.test.ts +64 -1
- package/src/transport/bot-ws/sdk-adapter.ts +88 -12
- package/.claude/settings.local.json +0 -11
- package/docs/update-content-fix.md +0 -135
package/SKILLS_DOC.md
ADDED
|
@@ -0,0 +1,2136 @@
|
|
|
1
|
+
# OpenClaw 企业微信文档能力技能清单
|
|
2
|
+
|
|
3
|
+
> 本清单列出所有企业微信文档相关的 MCP Tools,按功能模块分类,方便 OpenClaw 直接调用。
|
|
4
|
+
|
|
5
|
+
## 一、文档基础操作 (Doc Basic Operations)
|
|
6
|
+
|
|
7
|
+
### 1.1 创建文档
|
|
8
|
+
```json
|
|
9
|
+
{
|
|
10
|
+
"name": "wecom_doc",
|
|
11
|
+
"action": "create",
|
|
12
|
+
"description": "创建文档/表格/智能表格",
|
|
13
|
+
"parameters": {
|
|
14
|
+
"docName": "文档名称",
|
|
15
|
+
"docType": "doc|spreadsheet|smart_table|3|4|10",
|
|
16
|
+
"spaceId": "可选:空间 ID",
|
|
17
|
+
"fatherId": "可选:父目录 fileid",
|
|
18
|
+
"viewers": "可选:查看成员列表",
|
|
19
|
+
"collaborators": "可选:协作者列表",
|
|
20
|
+
"init_content": "可选:初始内容数组"
|
|
21
|
+
},
|
|
22
|
+
"returns": {
|
|
23
|
+
"docId": "文档 ID",
|
|
24
|
+
"url": "文档链接",
|
|
25
|
+
"title": "文档标题",
|
|
26
|
+
"resourceType": "资源类型"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 1.2 重命名文档
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"name": "wecom_doc",
|
|
35
|
+
"action": "rename",
|
|
36
|
+
"description": "重命名文档",
|
|
37
|
+
"parameters": {
|
|
38
|
+
"docId": "文档 ID",
|
|
39
|
+
"newName": "新名称"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 1.3 复制文档
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"name": "wecom_doc",
|
|
48
|
+
"action": "copy",
|
|
49
|
+
"description": "复制文档",
|
|
50
|
+
"parameters": {
|
|
51
|
+
"docId": "文档 ID",
|
|
52
|
+
"newName": "新文档名称",
|
|
53
|
+
"spaceId": "可选:目标空间 ID",
|
|
54
|
+
"fatherId": "可选:目标父目录"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 1.4 获取文档信息
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"name": "wecom_doc",
|
|
63
|
+
"action": "get_info",
|
|
64
|
+
"description": "获取文档基本信息",
|
|
65
|
+
"parameters": {
|
|
66
|
+
"docId": "文档 ID"
|
|
67
|
+
},
|
|
68
|
+
"returns": {
|
|
69
|
+
"doc_name": "文档名称",
|
|
70
|
+
"doc_type": "文档类型"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 1.5 获取分享链接
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"name": "wecom_doc",
|
|
79
|
+
"action": "share",
|
|
80
|
+
"description": "获取文档分享链接",
|
|
81
|
+
"parameters": {
|
|
82
|
+
"docId": "文档 ID"
|
|
83
|
+
},
|
|
84
|
+
"returns": {
|
|
85
|
+
"shareUrl": "分享链接"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 1.6 删除文档
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"name": "wecom_doc",
|
|
94
|
+
"action": "delete",
|
|
95
|
+
"description": "删除文档或收集表",
|
|
96
|
+
"parameters": {
|
|
97
|
+
"docId": "可选:文档 ID",
|
|
98
|
+
"formId": "可选:收集表 ID"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 二、文档权限管理 (Doc Permission Management)
|
|
106
|
+
|
|
107
|
+
### 2.1 获取文档权限
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"name": "wecom_doc",
|
|
111
|
+
"action": "get_auth",
|
|
112
|
+
"description": "获取文档权限信息",
|
|
113
|
+
"parameters": {
|
|
114
|
+
"docId": "文档 ID"
|
|
115
|
+
},
|
|
116
|
+
"returns": {
|
|
117
|
+
"docMembers": "查看成员列表",
|
|
118
|
+
"coAuthList": "协作者列表",
|
|
119
|
+
"accessRule": "访问规则"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 2.2 诊断文档权限
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"name": "wecom_doc",
|
|
128
|
+
"action": "diagnose_auth",
|
|
129
|
+
"description": "诊断文档访问权限问题",
|
|
130
|
+
"parameters": {
|
|
131
|
+
"docId": "文档 ID"
|
|
132
|
+
},
|
|
133
|
+
"returns": {
|
|
134
|
+
"internalAccessEnabled": "企业内访问是否开启",
|
|
135
|
+
"externalAccessEnabled": "企业外访问是否开启",
|
|
136
|
+
"requesterRole": "请求人角色",
|
|
137
|
+
"findings": "诊断发现",
|
|
138
|
+
"recommendations": "建议"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 2.3 校验分享链接
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"name": "wecom_doc",
|
|
147
|
+
"action": "validate_share_link",
|
|
148
|
+
"description": "校验分享链接可用性",
|
|
149
|
+
"parameters": {
|
|
150
|
+
"shareUrl": "分享链接"
|
|
151
|
+
},
|
|
152
|
+
"returns": {
|
|
153
|
+
"httpStatus": "HTTP 状态码",
|
|
154
|
+
"userType": "访问身份",
|
|
155
|
+
"padType": "页面类型",
|
|
156
|
+
"findings": "诊断发现"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 2.4 设置加入规则
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"name": "wecom_doc",
|
|
165
|
+
"action": "set_join_rule",
|
|
166
|
+
"description": "设置文档加入规则",
|
|
167
|
+
"parameters": {
|
|
168
|
+
"docId": "文档 ID",
|
|
169
|
+
"request": {
|
|
170
|
+
"enable_corp_internal": "是否开启企业内访问",
|
|
171
|
+
"corp_internal_auth": "企业内权限:1 只读 2 编辑",
|
|
172
|
+
"enable_corp_external": "是否开启企业外访问",
|
|
173
|
+
"ban_share_external": "是否禁止外部分享"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 2.5 设置成员权限
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"name": "wecom_doc",
|
|
183
|
+
"action": "set_member_auth",
|
|
184
|
+
"description": "设置文档通知范围及成员权限",
|
|
185
|
+
"parameters": {
|
|
186
|
+
"docId": "文档 ID",
|
|
187
|
+
"request": {
|
|
188
|
+
"notified_scope_type": "通知范围类型",
|
|
189
|
+
"notified_member_list": "通知成员列表"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### 2.6 授予/撤销访问权限
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"name": "wecom_doc",
|
|
199
|
+
"action": "grant_access",
|
|
200
|
+
"description": "批量授予或撤销文档访问权限",
|
|
201
|
+
"parameters": {
|
|
202
|
+
"docId": "文档 ID",
|
|
203
|
+
"viewers": "可选:查看成员列表",
|
|
204
|
+
"collaborators": "可选:协作者列表",
|
|
205
|
+
"removeViewers": "可选:移除查看成员",
|
|
206
|
+
"removeCollaborators": "可选:移除协作者",
|
|
207
|
+
"auth": "可选:权限级别"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 2.7 添加协作者
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"name": "wecom_doc",
|
|
216
|
+
"action": "add_collaborators",
|
|
217
|
+
"description": "添加文档协作者",
|
|
218
|
+
"parameters": {
|
|
219
|
+
"docId": "文档 ID",
|
|
220
|
+
"collaborators": "协作者列表",
|
|
221
|
+
"auth": "可选:权限级别"
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### 2.8 设置安全设置
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"name": "wecom_doc",
|
|
230
|
+
"action": "set_safety_setting",
|
|
231
|
+
"description": "设置文档安全设置(水印、复制等)",
|
|
232
|
+
"parameters": {
|
|
233
|
+
"docId": "文档 ID",
|
|
234
|
+
"request": {
|
|
235
|
+
"watermark": "水印设置",
|
|
236
|
+
"disable_copy": "禁止复制",
|
|
237
|
+
"disable_print": "禁止打印"
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### 2.9 获取安全设置
|
|
244
|
+
```json
|
|
245
|
+
{
|
|
246
|
+
"name": "wecom_doc",
|
|
247
|
+
"action": "get_doc_security_setting",
|
|
248
|
+
"description": "获取文档安全设置",
|
|
249
|
+
"parameters": {
|
|
250
|
+
"docId": "文档 ID"
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 三、文档内容操作 (Doc Content Operations)
|
|
258
|
+
|
|
259
|
+
### 3.1 获取文档内容
|
|
260
|
+
```json
|
|
261
|
+
{
|
|
262
|
+
"name": "wecom_doc",
|
|
263
|
+
"action": "get_content",
|
|
264
|
+
"description": "获取文档完整内容(包含版本号和文档树)",
|
|
265
|
+
"parameters": {
|
|
266
|
+
"docId": "文档 ID"
|
|
267
|
+
},
|
|
268
|
+
"returns": {
|
|
269
|
+
"version": "文档版本号",
|
|
270
|
+
"document": "文档内容树(Node 结构)"
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 3.2 更新文档内容
|
|
276
|
+
```json
|
|
277
|
+
{
|
|
278
|
+
"name": "wecom_doc",
|
|
279
|
+
"action": "update_content",
|
|
280
|
+
"description": "批量更新文档内容(最多 30 个操作)",
|
|
281
|
+
"parameters": {
|
|
282
|
+
"docId": "文档 ID",
|
|
283
|
+
"requests": [
|
|
284
|
+
{
|
|
285
|
+
"replace_text": { "text": "替换文本", "ranges": [{"start_index": 0, "length": 5}] }
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"insert_text": { "text": "插入文本", "location": { "index": 10 } }
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"insert_image": { "image_id": "图片 URL", "location": { "index": 20 } }
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"insert_table": { "rows": 3, "cols": 3, "location": { "index": 30 } }
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"insert_paragraph": { "location": { "index": 40 } }
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"update_text_property": { "text_property": { "bold": true }, "ranges": [...] }
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
"version": "可选:文档版本号"
|
|
304
|
+
},
|
|
305
|
+
"returns": {
|
|
306
|
+
"batches": "分批数量(超过 30 个操作时自动分批)"
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### 3.3 上传图片到文档
|
|
312
|
+
```json
|
|
313
|
+
{
|
|
314
|
+
"name": "wecom_doc",
|
|
315
|
+
"action": "upload_doc_image",
|
|
316
|
+
"description": "上传图片到文档(获取 image_id)",
|
|
317
|
+
"parameters": {
|
|
318
|
+
"docId": "文档 ID",
|
|
319
|
+
"file_path": "本地图片路径"
|
|
320
|
+
},
|
|
321
|
+
"returns": {
|
|
322
|
+
"url": "图片 URL",
|
|
323
|
+
"width": "图片宽度",
|
|
324
|
+
"height": "图片高度",
|
|
325
|
+
"size": "文件大小"
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## 四、在线表格操作 (Spreadsheet Operations)
|
|
333
|
+
|
|
334
|
+
### 4.1 获取表格属性
|
|
335
|
+
```json
|
|
336
|
+
{
|
|
337
|
+
"name": "wecom_doc",
|
|
338
|
+
"action": "get_sheet_properties",
|
|
339
|
+
"description": "获取在线表格所有工作表属性",
|
|
340
|
+
"parameters": {
|
|
341
|
+
"docId": "文档 ID"
|
|
342
|
+
},
|
|
343
|
+
"returns": {
|
|
344
|
+
"properties": [
|
|
345
|
+
{
|
|
346
|
+
"sheet_id": "工作表 ID",
|
|
347
|
+
"title": "工作表标题",
|
|
348
|
+
"row_count": "行数",
|
|
349
|
+
"column_count": "列数"
|
|
350
|
+
}
|
|
351
|
+
]
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### 4.2 获取表格数据
|
|
357
|
+
```json
|
|
358
|
+
{
|
|
359
|
+
"name": "wecom_doc",
|
|
360
|
+
"action": "get_sheet_data",
|
|
361
|
+
"description": "获取指定范围内的单元格数据",
|
|
362
|
+
"parameters": {
|
|
363
|
+
"docId": "文档 ID",
|
|
364
|
+
"sheetId": "工作表 ID",
|
|
365
|
+
"range": "A1 表示法范围,如 A1:B5"
|
|
366
|
+
},
|
|
367
|
+
"returns": {
|
|
368
|
+
"data": {
|
|
369
|
+
"start_row": "起始行",
|
|
370
|
+
"start_column": "起始列",
|
|
371
|
+
"rows": [{ "values": [{ "cell_value": {...}, "cell_format": {...} }] }]"
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### 4.3 编辑表格数据
|
|
378
|
+
```json
|
|
379
|
+
{
|
|
380
|
+
"name": "wecom_doc",
|
|
381
|
+
"action": "edit_sheet_data",
|
|
382
|
+
"description": "编辑表格单元格数据(最多 5 个操作)",
|
|
383
|
+
"parameters": {
|
|
384
|
+
"docId": "文档 ID",
|
|
385
|
+
"sheetId": "工作表 ID",
|
|
386
|
+
"startRow": "可选:起始行(从 0 开始)",
|
|
387
|
+
"startColumn": "可选:起始列(从 0 开始)",
|
|
388
|
+
"gridData": {
|
|
389
|
+
"rows": [
|
|
390
|
+
{ "values": [{ "cell_value": { "text": "内容" } }] }
|
|
391
|
+
]
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### 4.4 修改表格属性
|
|
398
|
+
```json
|
|
399
|
+
{
|
|
400
|
+
"name": "wecom_doc",
|
|
401
|
+
"action": "modify_sheet_properties",
|
|
402
|
+
"description": "修改工作表属性(添加/删除/重命名)",
|
|
403
|
+
"parameters": {
|
|
404
|
+
"docId": "文档 ID",
|
|
405
|
+
"requests": [
|
|
406
|
+
{
|
|
407
|
+
"add_sheet_request": { "title": "新工作表", "row_count": 10, "column_count": 10 }
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"delete_sheet_request": { "sheet_id": "要删除的工作表 ID" }
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"update_range_request": { "sheet_id": "...", "grid_data": {...} }
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"delete_dimension_request": { "sheet_id": "...", "dimension": "ROW|COLUMN", "start_index": 1, "end_index": 5 }
|
|
417
|
+
}
|
|
418
|
+
]
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## 五、智能表格操作 (Smart Table Operations)
|
|
426
|
+
|
|
427
|
+
### 5.1 查询子表
|
|
428
|
+
```json
|
|
429
|
+
{
|
|
430
|
+
"name": "wecom_doc",
|
|
431
|
+
"action": "smartsheet_get_sheets",
|
|
432
|
+
"description": "查询智能表格所有子表信息",
|
|
433
|
+
"parameters": {
|
|
434
|
+
"docId": "文档 ID",
|
|
435
|
+
"sheet_id": "可选:指定子表 ID 查询",
|
|
436
|
+
"need_all_type_sheet": "可选:获取所有类型子表(包含仪表盘和说明页)"
|
|
437
|
+
},
|
|
438
|
+
"returns": {
|
|
439
|
+
"sheet_list": [
|
|
440
|
+
{
|
|
441
|
+
"sheet_id": "子表 ID",
|
|
442
|
+
"title": "子表名称",
|
|
443
|
+
"is_visible": "是否可见",
|
|
444
|
+
"type": "smartsheet|dashboard|external"
|
|
445
|
+
}
|
|
446
|
+
]
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### 5.2 添加子表
|
|
452
|
+
```json
|
|
453
|
+
{
|
|
454
|
+
"name": "wecom_doc",
|
|
455
|
+
"action": "smartsheet_add_sheet",
|
|
456
|
+
"description": "添加智能表格子表",
|
|
457
|
+
"parameters": {
|
|
458
|
+
"docId": "文档 ID",
|
|
459
|
+
"title": "子表标题",
|
|
460
|
+
"index": "可选:子表下标"
|
|
461
|
+
},
|
|
462
|
+
"returns": {
|
|
463
|
+
"properties": {
|
|
464
|
+
"sheet_id": "生成的子表 ID",
|
|
465
|
+
"title": "子表标题",
|
|
466
|
+
"index": "子表下标"
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
### 5.3 删除子表
|
|
473
|
+
```json
|
|
474
|
+
{
|
|
475
|
+
"name": "wecom_doc",
|
|
476
|
+
"action": "smartsheet_del_sheet",
|
|
477
|
+
"description": "删除智能表格子表",
|
|
478
|
+
"parameters": {
|
|
479
|
+
"docId": "文档 ID",
|
|
480
|
+
"sheetId": "子表 ID"
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
### 5.4 更新子表
|
|
486
|
+
```json
|
|
487
|
+
{
|
|
488
|
+
"name": "wecom_doc",
|
|
489
|
+
"action": "smartsheet_update_sheet",
|
|
490
|
+
"description": "修改子表标题",
|
|
491
|
+
"parameters": {
|
|
492
|
+
"docId": "文档 ID",
|
|
493
|
+
"sheetId": "子表 ID",
|
|
494
|
+
"title": "新标题"
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### 5.5 添加视图
|
|
500
|
+
```json
|
|
501
|
+
{
|
|
502
|
+
"name": "wecom_doc",
|
|
503
|
+
"action": "smartsheet_add_view",
|
|
504
|
+
"description": "在子表中添加新视图",
|
|
505
|
+
"parameters": {
|
|
506
|
+
"docId": "文档 ID",
|
|
507
|
+
"sheetId": "子表 ID",
|
|
508
|
+
"view_title": "视图标题",
|
|
509
|
+
"view_type": "VIEW_TYPE_GRID|VIEW_TYPE_KANBAN|VIEW_TYPE_GALLERY|VIEW_TYPE_GANTT|VIEW_TYPE_CALENDAR",
|
|
510
|
+
"property": "可选:视图属性(sort_spec, filter_spec, group_spec 等)"
|
|
511
|
+
},
|
|
512
|
+
"returns": {
|
|
513
|
+
"view": {
|
|
514
|
+
"view_id": "视图 ID",
|
|
515
|
+
"view_title": "视图标题",
|
|
516
|
+
"view_type": "视图类型"
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### 5.6 更新视图
|
|
523
|
+
```json
|
|
524
|
+
{
|
|
525
|
+
"name": "wecom_doc",
|
|
526
|
+
"action": "smartsheet_update_view",
|
|
527
|
+
"description": "更新视图属性",
|
|
528
|
+
"parameters": {
|
|
529
|
+
"docId": "文档 ID",
|
|
530
|
+
"sheetId": "子表 ID",
|
|
531
|
+
"view_id": "视图 ID",
|
|
532
|
+
"view_title": "可选:新视图标题",
|
|
533
|
+
"property": "可选:视图属性(sort_spec, filter_spec, group_spec, color_config 等)"
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
### 5.7 删除视图
|
|
539
|
+
```json
|
|
540
|
+
{
|
|
541
|
+
"name": "wecom_doc",
|
|
542
|
+
"action": "smartsheet_del_view",
|
|
543
|
+
"description": "删除一个或多个视图",
|
|
544
|
+
"parameters": {
|
|
545
|
+
"docId": "文档 ID",
|
|
546
|
+
"sheetId": "子表 ID",
|
|
547
|
+
"view_ids": ["视图 ID 列表"]
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
### 5.8 查询视图
|
|
553
|
+
```json
|
|
554
|
+
{
|
|
555
|
+
"name": "wecom_doc",
|
|
556
|
+
"action": "smartsheet_get_views",
|
|
557
|
+
"description": "获取子表下所有视图信息",
|
|
558
|
+
"parameters": {
|
|
559
|
+
"docId": "文档 ID",
|
|
560
|
+
"sheetId": "子表 ID",
|
|
561
|
+
"view_ids": "可选:指定视图 ID 列表",
|
|
562
|
+
"offset": "可选:偏移量",
|
|
563
|
+
"limit": "可选:分页大小(最大 1000)"
|
|
564
|
+
},
|
|
565
|
+
"returns": {
|
|
566
|
+
"views": [...],
|
|
567
|
+
"total": "视图总数",
|
|
568
|
+
"has_more": "是否还有更多",
|
|
569
|
+
"next": "下次查询的偏移量"
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
### 5.9 添加字段
|
|
575
|
+
```json
|
|
576
|
+
{
|
|
577
|
+
"name": "wecom_doc",
|
|
578
|
+
"action": "smartsheet_add_fields",
|
|
579
|
+
"description": "在子表中添加一个或多个字段(单表最多 150 个字段)",
|
|
580
|
+
"parameters": {
|
|
581
|
+
"docId": "必填:string,文档的 docid",
|
|
582
|
+
"sheetId": "必填:string,表格 ID",
|
|
583
|
+
"fields": "必填:object[],字段详情数组",
|
|
584
|
+
"fields[].field_title": "必填:string,字段标题",
|
|
585
|
+
"fields[].field_type": "必填:string,字段类型,见下方字段类型对照表",
|
|
586
|
+
"fields[].property_number": "可选:object,数字类型的字段属性,{decimal_places: 2, use_separate: true}",
|
|
587
|
+
"fields[].property_checkbox": "可选:object,复选框类型的字段属性,{checked: true}",
|
|
588
|
+
"fields[].property_date_time": "可选:object,日期类型的字段属性,{format: \"yyyy-mm-dd\", auto_fill: false}",
|
|
589
|
+
"fields[].property_attachment": "可选:object,文件类型的字段属性,{display_mode: \"DISPLAY_MODE_LIST\"}",
|
|
590
|
+
"fields[].property_user": "可选:object,人员类型的字段属性,{is_multiple: true, is_notified: true}",
|
|
591
|
+
"fields[].property_url": "可选:object,超链接类型的字段属性,{type: \"LINK_TYPE_PURE_TEXT\"}",
|
|
592
|
+
"fields[].property_select": "可选:object,多选类型的字段属性,{is_quick_add: true, options: [{id: \"1\", text: \"选项 1\", style: 1}]}",
|
|
593
|
+
"fields[].property_created_time": "可选:object,创建时间类型的字段属性,{format: \"yyyy-mm-dd\"}",
|
|
594
|
+
"fields[].property_modified_time": "可选:object,最后编辑时间类型的字段属性,{format: \"yyyy-mm-dd\"}",
|
|
595
|
+
"fields[].property_progress": "可选:object,进度类型的字段属性,{decimal_places: 2}",
|
|
596
|
+
"fields[].property_single_select": "可选:object,单选类型的字段属性,{is_quick_add: true, options: [...]}",
|
|
597
|
+
"fields[].property_reference": "可选:object,关联类型的字段属性,{sub_id: \"\", field_id: \"\", is_multiple: false, view_id: \"\"}",
|
|
598
|
+
"fields[].property_location": "可选:object,地理位置类型的字段属性,{input_type: \"LOCATION_INPUT_TYPE_MANUAL\"}",
|
|
599
|
+
"fields[].property_auto_number": "可选:object,自动编号类型的字段属性,{type: \"NUMBER_TYPE_INCR\", rules: [...], reformat_existing_record: false}",
|
|
600
|
+
"fields[].property_currency": "可选:object,货币类型的字段属性,{currency_type: \"CURRENCY_TYPE_CNY\", decimal_places: 2, use_separate: true}",
|
|
601
|
+
"fields[].property_ww_group": "可选:object,群类型的字段属性,{allow_multiple: true}",
|
|
602
|
+
"fields[].property_percentage": "可选:object,百分数类型的字段属性,{decimal_places: 2, use_separate: true}",
|
|
603
|
+
"fields[].property_barcode": "可选:object,条码类型的字段属性,{mobile_scan_only: false}"
|
|
604
|
+
},
|
|
605
|
+
"returns": {
|
|
606
|
+
"errcode": "integer,错误码",
|
|
607
|
+
"errmsg": "string,错误码描述",
|
|
608
|
+
"fields": "object[],字段详情数组",
|
|
609
|
+
"fields[].field_id": "string,生成的字段 ID",
|
|
610
|
+
"fields[].field_title": "string,字段标题",
|
|
611
|
+
"fields[].field_type": "string,字段类型"
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
**使用示例** - 添加文本字段:
|
|
617
|
+
```json
|
|
618
|
+
{
|
|
619
|
+
"name": "wecom_doc",
|
|
620
|
+
"action": "smartsheet_add_fields",
|
|
621
|
+
"parameters": {
|
|
622
|
+
"docId": "DOCID123",
|
|
623
|
+
"sheetId": "SHEET456",
|
|
624
|
+
"fields": [
|
|
625
|
+
{
|
|
626
|
+
"field_title": "姓名",
|
|
627
|
+
"field_type": "FIELD_TYPE_TEXT"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"field_title": "备注",
|
|
631
|
+
"field_type": "FIELD_TYPE_TEXT"
|
|
632
|
+
}
|
|
633
|
+
]
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
**使用示例** - 添加数字和日期字段:
|
|
639
|
+
```json
|
|
640
|
+
{
|
|
641
|
+
"name": "wecom_doc",
|
|
642
|
+
"action": "smartsheet_add_fields",
|
|
643
|
+
"parameters": {
|
|
644
|
+
"docId": "DOCID123",
|
|
645
|
+
"sheetId": "SHEET456",
|
|
646
|
+
"fields": [
|
|
647
|
+
{
|
|
648
|
+
"field_title": "年龄",
|
|
649
|
+
"field_type": "FIELD_TYPE_NUMBER",
|
|
650
|
+
"property_number": {
|
|
651
|
+
"decimal_places": 0,
|
|
652
|
+
"use_separate": false
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"field_title": "入职日期",
|
|
657
|
+
"field_type": "FIELD_TYPE_DATE_TIME",
|
|
658
|
+
"property_date_time": {
|
|
659
|
+
"format": "yyyy-mm-dd",
|
|
660
|
+
"auto_fill": false
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
]
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
**使用示例** - 添加多选字段:
|
|
669
|
+
```json
|
|
670
|
+
{
|
|
671
|
+
"name": "wecom_doc",
|
|
672
|
+
"action": "smartsheet_add_fields",
|
|
673
|
+
"parameters": {
|
|
674
|
+
"docId": "DOCID123",
|
|
675
|
+
"sheetId": "SHEET456",
|
|
676
|
+
"fields": [
|
|
677
|
+
{
|
|
678
|
+
"field_title": "技能",
|
|
679
|
+
"field_type": "FIELD_TYPE_SELECT",
|
|
680
|
+
"property_select": {
|
|
681
|
+
"is_quick_add": true,
|
|
682
|
+
"options": [
|
|
683
|
+
{"text": "Java", "style": 1},
|
|
684
|
+
{"text": "Python", "style": 2},
|
|
685
|
+
{"text": "JavaScript", "style": 3}
|
|
686
|
+
]
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
]
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
**⚠️ 重要注意事项**:
|
|
695
|
+
1. **字段属性必须与字段类型匹配** - 一种字段类型对应一种字段属性
|
|
696
|
+
2. **新增选项时不需要 id** - 只需填写 `text` 和 `style`,系统会自动生成 id
|
|
697
|
+
3. **field_type 必须使用官方常量** - 如 `FIELD_TYPE_TEXT`、`FIELD_TYPE_NUMBER` 等
|
|
698
|
+
4. **单表最多 150 个字段** - 超过限制会失败
|
|
699
|
+
|
|
700
|
+
**字段类型与属性对照表**:
|
|
701
|
+
|
|
702
|
+
| 字段类型 | 字段属性 | 说明 |
|
|
703
|
+
|----------|----------|------|
|
|
704
|
+
| FIELD_TYPE_TEXT | 无 | 文本类型不需要属性 |
|
|
705
|
+
| FIELD_TYPE_NUMBER | property_number | 数字类型,可设置小数位数和千位符 |
|
|
706
|
+
| FIELD_TYPE_CHECKBOX | property_checkbox | 复选框类型,可设置默认是否勾选 |
|
|
707
|
+
| FIELD_TYPE_DATE_TIME | property_date_time | 日期类型,可设置日期格式和自动填充 |
|
|
708
|
+
| FIELD_TYPE_IMAGE | 无 | 图片类型不需要属性 |
|
|
709
|
+
| FIELD_TYPE_ATTACHMENT | property_attachment | 文件类型,可设置展示样式(列表/宫格) |
|
|
710
|
+
| FIELD_TYPE_USER | property_user | 人员类型,可设置是否多选和是否通知 |
|
|
711
|
+
| FIELD_TYPE_URL | property_url | 超链接类型,可设置展示样式(文字/图标文字) |
|
|
712
|
+
| FIELD_TYPE_SELECT | property_select | 多选类型,可设置选项和是否允许新增 |
|
|
713
|
+
| FIELD_TYPE_SINGLE_SELECT | property_single_select | 单选类型,可设置选项和是否允许新增 |
|
|
714
|
+
| FIELD_TYPE_CREATED_TIME | property_created_time | 创建时间类型,可设置日期格式 |
|
|
715
|
+
| FIELD_TYPE_MODIFIED_TIME | property_modified_time | 最后编辑时间类型,可设置日期格式 |
|
|
716
|
+
| FIELD_TYPE_PROGRESS | property_progress | 进度类型,可设置小数位数 |
|
|
717
|
+
| FIELD_TYPE_PHONE_NUMBER | 无 | 电话类型不需要属性 |
|
|
718
|
+
| FIELD_TYPE_EMAIL | 无 | 邮箱类型不需要属性 |
|
|
719
|
+
| FIELD_TYPE_REFERENCE | property_reference | 关联类型,可设置关联子表和字段 |
|
|
720
|
+
| FIELD_TYPE_LOCATION | property_location | 地理位置类型,可设置输入类型(手动/自动) |
|
|
721
|
+
| FIELD_TYPE_CURRENCY | property_currency | 货币类型,可设置货币类型和小数位数 |
|
|
722
|
+
| FIELD_TYPE_WWGROUP | property_ww_group | 群类型,可设置是否多选 |
|
|
723
|
+
| FIELD_TYPE_AUTONUMBER | property_auto_number | 自动编号类型,可设置编号规则 |
|
|
724
|
+
| FIELD_TYPE_PERCENTAGE | property_percentage | 百分数类型,可设置小数位数 |
|
|
725
|
+
| FIELD_TYPE_BARCODE | property_barcode | 条码类型,可设置是否仅限手机扫描 |
|
|
726
|
+
|
|
727
|
+
### 5.10 删除字段
|
|
728
|
+
```json
|
|
729
|
+
{
|
|
730
|
+
"name": "wecom_doc",
|
|
731
|
+
"action": "smartsheet_del_fields",
|
|
732
|
+
"description": "删除一个或多个字段",
|
|
733
|
+
"parameters": {
|
|
734
|
+
"docId": "必填:string,文档的 docid",
|
|
735
|
+
"sheetId": "必填:string,表格 ID",
|
|
736
|
+
"field_ids": "必填:string[],需要删除的字段 id 列表"
|
|
737
|
+
},
|
|
738
|
+
"returns": {
|
|
739
|
+
"errcode": "integer,错误码",
|
|
740
|
+
"errmsg": "string,错误码描述"
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
**使用示例**:
|
|
746
|
+
```json
|
|
747
|
+
{
|
|
748
|
+
"name": "wecom_doc",
|
|
749
|
+
"action": "smartsheet_del_fields",
|
|
750
|
+
"parameters": {
|
|
751
|
+
"docId": "DOCID123",
|
|
752
|
+
"sheetId": "SHEET456",
|
|
753
|
+
"field_ids": ["f1gHSR", "fabcde"]
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
### 5.11 更新字段
|
|
761
|
+
```json
|
|
762
|
+
{
|
|
763
|
+
"name": "wecom_doc",
|
|
764
|
+
"action": "smartsheet_update_fields",
|
|
765
|
+
"description": "更新字段的标题和字段属性(不能更新字段类型)",
|
|
766
|
+
"parameters": {
|
|
767
|
+
"docId": "必填:string,文档的 docid",
|
|
768
|
+
"sheetId": "必填:string,表格 ID",
|
|
769
|
+
"fields": "必填:object[],字段详情数组",
|
|
770
|
+
"fields[].field_id": "必填:string,字段 ID(不能更新)",
|
|
771
|
+
"fields[].field_title": "可选:string,新字段标题(不能更新为原值)",
|
|
772
|
+
"fields[].field_type": "必填:string,字段类型(必须为原类型)",
|
|
773
|
+
"fields[].property_number": "可选:object,数字类型的字段属性",
|
|
774
|
+
"fields[].property_checkbox": "可选:object,复选框类型的字段属性",
|
|
775
|
+
"fields[].property_date_time": "可选:object,日期类型的字段属性",
|
|
776
|
+
"fields[].property_attachment": "可选:object,文件类型的字段属性",
|
|
777
|
+
"fields[].property_user": "可选:object,人员类型的字段属性",
|
|
778
|
+
"fields[].property_url": "可选:object,超链接类型的字段属性",
|
|
779
|
+
"fields[].property_select": "可选:object,多选类型的字段属性",
|
|
780
|
+
"fields[].property_created_time": "可选:object,创建时间类型的字段属性",
|
|
781
|
+
"fields[].property_modified_time": "可选:object,最后编辑时间类型的字段属性",
|
|
782
|
+
"fields[].property_progress": "可选:object,进度类型的字段属性",
|
|
783
|
+
"fields[].property_single_select": "可选:object,单选类型的字段属性",
|
|
784
|
+
"fields[].property_reference": "可选:object,关联类型的字段属性",
|
|
785
|
+
"fields[].property_location": "可选:object,地理位置类型的字段属性",
|
|
786
|
+
"fields[].property_auto_number": "可选:object,自动编号类型的字段属性",
|
|
787
|
+
"fields[].property_currency": "可选:object,货币类型的字段属性",
|
|
788
|
+
"fields[].property_ww_group": "可选:object,群类型的字段属性",
|
|
789
|
+
"fields[].property_percentage": "可选:object,百分数类型的字段属性",
|
|
790
|
+
"fields[].property_barcode": "可选:object,条码类型的字段属性"
|
|
791
|
+
},
|
|
792
|
+
"returns": {
|
|
793
|
+
"errcode": "integer,错误码",
|
|
794
|
+
"errmsg": "string,错误码描述",
|
|
795
|
+
"fields": "object[],字段详情数组"
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
**使用示例** - 更新字段标题:
|
|
801
|
+
```json
|
|
802
|
+
{
|
|
803
|
+
"name": "wecom_doc",
|
|
804
|
+
"action": "smartsheet_update_fields",
|
|
805
|
+
"parameters": {
|
|
806
|
+
"docId": "DOCID123",
|
|
807
|
+
"sheetId": "SHEET456",
|
|
808
|
+
"fields": [
|
|
809
|
+
{
|
|
810
|
+
"field_id": "f1gHSR",
|
|
811
|
+
"field_title": "员工姓名",
|
|
812
|
+
"field_type": "FIELD_TYPE_TEXT"
|
|
813
|
+
}
|
|
814
|
+
]
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
```
|
|
818
|
+
|
|
819
|
+
**使用示例** - 更新字段属性:
|
|
820
|
+
```json
|
|
821
|
+
{
|
|
822
|
+
"name": "wecom_doc",
|
|
823
|
+
"action": "smartsheet_update_fields",
|
|
824
|
+
"parameters": {
|
|
825
|
+
"docId": "DOCID123",
|
|
826
|
+
"sheetId": "SHEET456",
|
|
827
|
+
"fields": [
|
|
828
|
+
{
|
|
829
|
+
"field_id": "fabcde",
|
|
830
|
+
"field_type": "FIELD_TYPE_NUMBER",
|
|
831
|
+
"property_number": {
|
|
832
|
+
"decimal_places": 2,
|
|
833
|
+
"use_separate": true
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
]
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
```
|
|
840
|
+
|
|
841
|
+
**⚠️ 重要注意事项**:
|
|
842
|
+
1. **不能更新字段类型** - 只能更新字段标题和字段属性
|
|
843
|
+
2. **field_title 和 property 至少传一个** - 且 field_title 不能被更新为原值
|
|
844
|
+
3. **field_id 不能更新** - 仅用于标识要更新的字段
|
|
845
|
+
4. **字段属性必须与字段类型匹配** - 与添加字段时相同
|
|
846
|
+
|
|
847
|
+
---
|
|
848
|
+
|
|
849
|
+
### 5.12 查询字段
|
|
850
|
+
```json
|
|
851
|
+
{
|
|
852
|
+
"name": "wecom_doc",
|
|
853
|
+
"action": "smartsheet_get_fields",
|
|
854
|
+
"description": "获取子表下字段信息(支持分页、按字段 ID 或字段标题筛选)",
|
|
855
|
+
"parameters": {
|
|
856
|
+
"docId": "必填:string,文档的 docid",
|
|
857
|
+
"sheetId": "必填:string,表格 ID",
|
|
858
|
+
"view_id": "可选:string,视图 ID",
|
|
859
|
+
"field_ids": "可选:string[],由字段 ID 组成的 JSON 数组",
|
|
860
|
+
"field_titles": "可选:string[],由字段标题组成的 JSON 数组",
|
|
861
|
+
"offset": "可选:integer,偏移量,初始值为 0",
|
|
862
|
+
"limit": "可选:integer,分页大小,每页返回多少条数据;当不填写该参数或将该参数设置为 0 时,如果总数大于 1000,一次性返回 1000 个字段,当总数小于 1000 时,返回全部字段;limit 最大值为 1000"
|
|
863
|
+
},
|
|
864
|
+
"returns": {
|
|
865
|
+
"errcode": "integer,错误码",
|
|
866
|
+
"errmsg": "string,错误码描述",
|
|
867
|
+
"total": "integer,字段总数",
|
|
868
|
+
"fields": "object[],字段详情数组",
|
|
869
|
+
"fields[].field_id": "string,字段 ID",
|
|
870
|
+
"fields[].field_title": "string,字段标题",
|
|
871
|
+
"fields[].field_type": "string,字段类型",
|
|
872
|
+
"fields[].property_*": "可选:object,对应字段类型的属性"
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
**使用示例** - 获取全部字段:
|
|
878
|
+
```json
|
|
879
|
+
{
|
|
880
|
+
"name": "wecom_doc",
|
|
881
|
+
"action": "smartsheet_get_fields",
|
|
882
|
+
"parameters": {
|
|
883
|
+
"docId": "DOCID123",
|
|
884
|
+
"sheetId": "SHEET456",
|
|
885
|
+
"offset": 0,
|
|
886
|
+
"limit": 100
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
**使用示例** - 按字段 ID 查询:
|
|
892
|
+
```json
|
|
893
|
+
{
|
|
894
|
+
"name": "wecom_doc",
|
|
895
|
+
"action": "smartsheet_get_fields",
|
|
896
|
+
"parameters": {
|
|
897
|
+
"docId": "DOCID123",
|
|
898
|
+
"sheetId": "SHEET456",
|
|
899
|
+
"field_ids": ["f1gHSR", "fabcde"]
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
```
|
|
903
|
+
|
|
904
|
+
**使用示例** - 按字段标题查询:
|
|
905
|
+
```json
|
|
906
|
+
{
|
|
907
|
+
"name": "wecom_doc",
|
|
908
|
+
"action": "smartsheet_get_fields",
|
|
909
|
+
"parameters": {
|
|
910
|
+
"docId": "DOCID123",
|
|
911
|
+
"sheetId": "SHEET456",
|
|
912
|
+
"field_titles": ["姓名", "年龄"]
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
### 5.13 添加编组
|
|
918
|
+
```json
|
|
919
|
+
{
|
|
920
|
+
"name": "wecom_doc",
|
|
921
|
+
"action": "smartsheet_add_group",
|
|
922
|
+
"description": "添加字段编组",
|
|
923
|
+
"parameters": {
|
|
924
|
+
"docId": "文档 ID",
|
|
925
|
+
"sheetId": "子表 ID",
|
|
926
|
+
"name": "编组名称",
|
|
927
|
+
"children": ["可选:字段 ID 列表"]
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
```
|
|
931
|
+
|
|
932
|
+
### 5.14 删除编组
|
|
933
|
+
```json
|
|
934
|
+
{
|
|
935
|
+
"name": "wecom_doc",
|
|
936
|
+
"action": "smartsheet_del_group",
|
|
937
|
+
"description": "删除编组",
|
|
938
|
+
"parameters": {
|
|
939
|
+
"docId": "文档 ID",
|
|
940
|
+
"sheetId": "子表 ID",
|
|
941
|
+
"field_group_id": "编组 ID"
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
```
|
|
945
|
+
|
|
946
|
+
### 5.15 更新编组
|
|
947
|
+
```json
|
|
948
|
+
{
|
|
949
|
+
"name": "wecom_doc",
|
|
950
|
+
"action": "smartsheet_update_group",
|
|
951
|
+
"description": "更新编组",
|
|
952
|
+
"parameters": {
|
|
953
|
+
"docId": "文档 ID",
|
|
954
|
+
"sheetId": "子表 ID",
|
|
955
|
+
"field_group_id": "编组 ID",
|
|
956
|
+
"name": "可选:新编组名称",
|
|
957
|
+
"children": ["可选:字段 ID 列表"]
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
```
|
|
961
|
+
|
|
962
|
+
### 5.16 获取编组
|
|
963
|
+
```json
|
|
964
|
+
{
|
|
965
|
+
"name": "wecom_doc",
|
|
966
|
+
"action": "smartsheet_get_groups",
|
|
967
|
+
"description": "获取编组列表",
|
|
968
|
+
"parameters": {
|
|
969
|
+
"docId": "文档 ID",
|
|
970
|
+
"sheetId": "子表 ID"
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
### 5.17 添加记录
|
|
976
|
+
```json
|
|
977
|
+
{
|
|
978
|
+
"name": "wecom_doc",
|
|
979
|
+
"action": "smartsheet_add_records",
|
|
980
|
+
"description": "添加一行或多行记录(单表最多 100000 行记录,1500000 个单元格,单次建议 500 行内)",
|
|
981
|
+
"parameters": {
|
|
982
|
+
"docId": "必填:string,文档的 docid",
|
|
983
|
+
"sheetId": "必填:string,Smartsheet 子表 ID",
|
|
984
|
+
"key_type": "可选:string,返回记录中单元格的 key 类型,CELL_VALUE_KEY_TYPE_FIELD_TITLE(默认,用字段标题)|CELL_VALUE_KEY_TYPE_FIELD_ID(用字段 ID)",
|
|
985
|
+
"records": "必填:object[],需要添加的记录数组,每个记录包含 values 对象",
|
|
986
|
+
"records[].values": "必填:object,记录的具体内容,key 为字段标题或字段 ID,value 为数组(根据字段类型不同而不同)",
|
|
987
|
+
"records[].values.文本字段": "可选:object[],文本类型字段值,[{\"type\": \"text\", \"text\": \"内容\"}] 或 [{\"type\": \"url\", \"text\": \"显示文本\", \"link\": \"跳转 URL\"}]",
|
|
988
|
+
"records[].values.数字字段": "可选:number[],数字类型字段值,如 [25]",
|
|
989
|
+
"records[].values.日期字段": "可选:string[],日期类型字段值,毫秒级 Unix 时间戳字符串,如 [\"1747152000000\"]",
|
|
990
|
+
"records[].values.多选字段": "可选:object[],多选类型字段值,[{\"id\": \"选项 ID\", \"text\": \"选项文本\", \"style\": 1}]",
|
|
991
|
+
"records[].values.单选字段": "可选:object[],单选类型字段值,[{\"id\": \"选项 ID\", \"text\": \"选项文本\", \"style\": 1}]",
|
|
992
|
+
"records[].values.成员字段": "可选:object[],成员类型字段值,[{\"user_id\": \"成员 userid\"}]",
|
|
993
|
+
"records[].values.复选框字段": "可选:boolean[],复选框类型字段值,[true] 或 [false]",
|
|
994
|
+
"records[].values.进度字段": "可选:number[],进度类型字段值,[0.5] 表示 50%",
|
|
995
|
+
"records[].values.电话字段": "可选:string[],电话类型字段值,[\"13800138000\"]",
|
|
996
|
+
"records[].values.邮箱字段": "可选:string[],邮箱类型字段值,[\"test@example.com\"]",
|
|
997
|
+
"records[].values.链接字段": "可选:object[],链接类型字段值,[{\"type\": \"url\", \"text\": \"显示文本\", \"link\": \"跳转 URL\"}]",
|
|
998
|
+
"records[].values.地理位置字段": "可选:object[],地理位置字段值,[{\"id\": \"地点 ID\", \"latitude\": \"纬度\", \"longitude\": \"经度\", \"title\": \"地点名称\", \"source_type\": 1}]",
|
|
999
|
+
"records[].values.货币字段": "可选:number[],货币类型字段值,[100.50]",
|
|
1000
|
+
"records[].values.百分数字段": "可选:number[],百分数类型字段值,[0.75] 表示 75%",
|
|
1001
|
+
"records[].values.条码字段": "可选:string[],条码类型字段值,[\"6901234567890\"]"
|
|
1002
|
+
},
|
|
1003
|
+
"returns": {
|
|
1004
|
+
"errcode": "integer,错误码",
|
|
1005
|
+
"errmsg": "string,错误码描述",
|
|
1006
|
+
"records": "object[],添加成功的记录数组"
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
**使用示例** - 添加文本和数字记录:
|
|
1012
|
+
```json
|
|
1013
|
+
{
|
|
1014
|
+
"name": "wecom_doc",
|
|
1015
|
+
"action": "smartsheet_add_records",
|
|
1016
|
+
"parameters": {
|
|
1017
|
+
"docId": "DOCID123",
|
|
1018
|
+
"sheetId": "SHEET456",
|
|
1019
|
+
"key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
|
|
1020
|
+
"records": [
|
|
1021
|
+
{
|
|
1022
|
+
"values": {
|
|
1023
|
+
"姓名": [{"type": "text", "text": "张三"}],
|
|
1024
|
+
"年龄": [25],
|
|
1025
|
+
"部门": [{"type": "text", "text": "技术部"}],
|
|
1026
|
+
"入职日期": ["1704067200000"],
|
|
1027
|
+
"是否全职": [true],
|
|
1028
|
+
"工资": [15000.50]
|
|
1029
|
+
}
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"values": {
|
|
1033
|
+
"姓名": [{"type": "text", "text": "李四"}],
|
|
1034
|
+
"年龄": [28],
|
|
1035
|
+
"部门": [{"type": "text", "text": "产品部"}],
|
|
1036
|
+
"入职日期": ["1704153600000"],
|
|
1037
|
+
"是否全职": [true],
|
|
1038
|
+
"工资": [18000.00]
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
]
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
```
|
|
1045
|
+
|
|
1046
|
+
**使用示例** - 添加多选和成员记录:
|
|
1047
|
+
```json
|
|
1048
|
+
{
|
|
1049
|
+
"name": "wecom_doc",
|
|
1050
|
+
"action": "smartsheet_add_records",
|
|
1051
|
+
"parameters": {
|
|
1052
|
+
"docId": "DOCID123",
|
|
1053
|
+
"sheetId": "SHEET456",
|
|
1054
|
+
"records": [
|
|
1055
|
+
{
|
|
1056
|
+
"values": {
|
|
1057
|
+
"姓名": [{"type": "text", "text": "王五"}],
|
|
1058
|
+
"技能": [
|
|
1059
|
+
{"id": "opt1", "text": "Java", "style": 1},
|
|
1060
|
+
{"id": "opt2", "text": "Python", "style": 2}
|
|
1061
|
+
],
|
|
1062
|
+
"负责人": [{"user_id": "zhangsan"}],
|
|
1063
|
+
"进度": [0.75],
|
|
1064
|
+
"邮箱": [{"type": "url", "text": "wangwu@example.com", "link": "mailto:wangwu@example.com"}]
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
]
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
```
|
|
1071
|
+
|
|
1072
|
+
**⚠️ 重要注意事项**:
|
|
1073
|
+
1. **所有字段值都必须是数组** - 即使是单个值也要用数组包裹,如 `[25]` 而不是 `25`
|
|
1074
|
+
2. **文本类型必须带 type** - `{"type": "text", "text": "内容"}` 或直接文本 `{"text": "内容"}`
|
|
1075
|
+
3. **不能添加记录的字段类型** - 创建时间、最后编辑时间、创建人、最后编辑人这四种类型的字段不能通过接口添加值(系统自动填充)
|
|
1076
|
+
4. **key_type 决定 values 的 key** - 使用字段标题或字段 ID 作为 key,默认使用字段标题
|
|
1077
|
+
5. **单次添加建议 500 行内** - 避免超时或失败
|
|
1078
|
+
|
|
1079
|
+
**字段类型与值类型对照表**:
|
|
1080
|
+
|
|
1081
|
+
| 字段类型 | 值类型 | 示例值 |
|
|
1082
|
+
|----------|--------|--------|
|
|
1083
|
+
| 文本 (FIELD_TYPE_TEXT) | object[] | `[{"type": "text", "text": "内容"}]` |
|
|
1084
|
+
| 数字 (FIELD_TYPE_NUMBER) | number[] | `[25]` 或 `[15000.50]` |
|
|
1085
|
+
| 复选框 (FIELD_TYPE_CHECKBOX) | boolean[] | `[true]` 或 `[false]` |
|
|
1086
|
+
| 日期 (FIELD_TYPE_DATE_TIME) | string[] | `["1704067200000"]` (毫秒时间戳) |
|
|
1087
|
+
| 成员 (FIELD_TYPE_USER) | object[] | `[{"user_id": "zhangsan"}]` |
|
|
1088
|
+
| 多选 (FIELD_TYPE_SELECT) | object[] | `[{"id": "opt1", "text": "选项", "style": 1}]` |
|
|
1089
|
+
| 单选 (FIELD_TYPE_SINGLE_SELECT) | object[] | `[{"id": "opt1", "text": "选项", "style": 1}]` |
|
|
1090
|
+
| 进度 (FIELD_TYPE_PROGRESS) | number[] | `[0.75]` (0-1 之间) |
|
|
1091
|
+
| 电话 (FIELD_TYPE_PHONE_NUMBER) | string[] | `["13800138000"]` |
|
|
1092
|
+
| 邮箱 (FIELD_TYPE_EMAIL) | string[] 或 object[] | `["test@example.com"]` 或 `[{"type": "url", "text": "test@example.com", "link": "mailto:test@example.com"}]` |
|
|
1093
|
+
| 链接 (FIELD_TYPE_URL) | object[] | `[{"type": "url", "text": "显示文本", "link": "https://..."}]` |
|
|
1094
|
+
| 货币 (FIELD_TYPE_CURRENCY) | number[] | `[100.50]` |
|
|
1095
|
+
| 百分数 (FIELD_TYPE_PERCENTAGE) | number[] | `[0.75]` (表示 75%) |
|
|
1096
|
+
| 条码 (FIELD_TYPE_BARCODE) | string[] | `["6901234567890"]` |
|
|
1097
|
+
| 地理位置 (FIELD_TYPE_LOCATION) | object[] | `[{"id": "地点 ID", "latitude": "23.10647", "longitude": "113.32446", "title": "广州塔", "source_type": 1}]` |
|
|
1098
|
+
|
|
1099
|
+
### 5.18 更新记录
|
|
1100
|
+
```json
|
|
1101
|
+
{
|
|
1102
|
+
"name": "wecom_doc",
|
|
1103
|
+
"action": "smartsheet_update_records",
|
|
1104
|
+
"description": "更新一行或多行记录(不能更新创建时间、最后编辑时间、创建人、最后编辑人字段)",
|
|
1105
|
+
"parameters": {
|
|
1106
|
+
"docId": "必填:string,文档的 docid",
|
|
1107
|
+
"sheetId": "必填:string,Smartsheet 子表 ID",
|
|
1108
|
+
"key_type": "可选:string,返回记录中单元格的 key 类型,CELL_VALUE_KEY_TYPE_FIELD_TITLE(默认)|CELL_VALUE_KEY_TYPE_FIELD_ID",
|
|
1109
|
+
"records": "必填:object[],需要更新的记录数组",
|
|
1110
|
+
"records[].record_id": "必填:string,记录 ID",
|
|
1111
|
+
"records[].values": "必填:object,记录的具体内容,key 为字段标题或字段 ID,value 为数组(根据字段类型不同而不同)",
|
|
1112
|
+
"records[].values.文本字段": "可选:object[],文本类型字段值,[{\"type\": \"text\", \"text\": \"新内容\"}]",
|
|
1113
|
+
"records[].values.数字字段": "可选:number[],数字类型字段值,如 [26]",
|
|
1114
|
+
"records[].values.日期字段": "可选:string[],日期类型字段值,毫秒级 Unix 时间戳字符串",
|
|
1115
|
+
"records[].values.多选字段": "可选:object[],多选类型字段值",
|
|
1116
|
+
"records[].values.单选字段": "可选:object[],单选类型字段值",
|
|
1117
|
+
"records[].values.成员字段": "可选:object[],成员类型字段值",
|
|
1118
|
+
"records[].values.复选框字段": "可选:boolean[],复选框类型字段值",
|
|
1119
|
+
"records[].values.进度字段": "可选:number[],进度类型字段值",
|
|
1120
|
+
"records[].values.电话字段": "可选:string[]",
|
|
1121
|
+
"records[].values.邮箱字段": "可选:string[]",
|
|
1122
|
+
"records[].values.链接字段": "可选:object[]",
|
|
1123
|
+
"records[].values.地理位置字段": "可选:object[]",
|
|
1124
|
+
"records[].values.货币字段": "可选:number[]",
|
|
1125
|
+
"records[].values.百分数字段": "可选:number[]",
|
|
1126
|
+
"records[].values.条码字段": "可选:string[]"
|
|
1127
|
+
},
|
|
1128
|
+
"returns": {
|
|
1129
|
+
"errcode": "integer,错误码",
|
|
1130
|
+
"errmsg": "string,错误码描述",
|
|
1131
|
+
"records": "object[],更新成功的记录数组"
|
|
1132
|
+
}
|
|
1133
|
+
}
|
|
1134
|
+
```
|
|
1135
|
+
|
|
1136
|
+
**使用示例**:
|
|
1137
|
+
```json
|
|
1138
|
+
{
|
|
1139
|
+
"name": "wecom_doc",
|
|
1140
|
+
"action": "smartsheet_update_records",
|
|
1141
|
+
"parameters": {
|
|
1142
|
+
"docId": "DOCID123",
|
|
1143
|
+
"sheetId": "SHEET456",
|
|
1144
|
+
"records": [
|
|
1145
|
+
{
|
|
1146
|
+
"record_id": "re9IqD",
|
|
1147
|
+
"values": {
|
|
1148
|
+
"姓名": [{"type": "text", "text": "张三丰"}],
|
|
1149
|
+
"年龄": [26],
|
|
1150
|
+
"部门": [{"type": "text", "text": "技术部"}],
|
|
1151
|
+
"工资": [16000.00],
|
|
1152
|
+
"是否全职": [true]
|
|
1153
|
+
}
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
"record_id": "rpS0P9",
|
|
1157
|
+
"values": {
|
|
1158
|
+
"姓名": [{"type": "text", "text": "李四光"}],
|
|
1159
|
+
"年龄": [29],
|
|
1160
|
+
"部门": [{"type": "text", "text": "产品部"}],
|
|
1161
|
+
"工资": [19000.00]
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
]
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
```
|
|
1168
|
+
|
|
1169
|
+
**⚠️ 重要注意事项**:
|
|
1170
|
+
1. **必须指定 record_id** - 用于标识要更新的记录
|
|
1171
|
+
2. **所有字段值都必须是数组** - 与添加记录相同
|
|
1172
|
+
3. **不能更新的字段类型** - 创建时间、最后编辑时间、创建人、最后编辑人(系统自动更新)
|
|
1173
|
+
4. **只更新指定的字段** - 未指定的字段保持不变
|
|
1174
|
+
5. **文本类型必须带 type** - `{"type": "text", "text": "内容"}`
|
|
1175
|
+
|
|
1176
|
+
### 5.19 删除记录
|
|
1177
|
+
```json
|
|
1178
|
+
{
|
|
1179
|
+
"name": "wecom_doc",
|
|
1180
|
+
"action": "smartsheet_del_records",
|
|
1181
|
+
"description": "删除一行或多行记录(单表最多 100000 行记录,单次删除建议 500 行内)",
|
|
1182
|
+
"parameters": {
|
|
1183
|
+
"docId": "必填:string,文档的 docid",
|
|
1184
|
+
"sheetId": "必填:string,Smartsheet 子表 ID",
|
|
1185
|
+
"record_ids": "必填:string[],要删除的记录 ID 列表"
|
|
1186
|
+
},
|
|
1187
|
+
"returns": {
|
|
1188
|
+
"errcode": "integer,错误码",
|
|
1189
|
+
"errmsg": "string,错误码描述"
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
```
|
|
1193
|
+
|
|
1194
|
+
**使用示例**:
|
|
1195
|
+
```json
|
|
1196
|
+
{
|
|
1197
|
+
"name": "wecom_doc",
|
|
1198
|
+
"action": "smartsheet_del_records",
|
|
1199
|
+
"parameters": {
|
|
1200
|
+
"docId": "DOCID123",
|
|
1201
|
+
"sheetId": "SHEET456",
|
|
1202
|
+
"record_ids": ["re9IqD", "rpS0P9"]
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
```
|
|
1206
|
+
|
|
1207
|
+
### 5.20 查询记录
|
|
1208
|
+
```json
|
|
1209
|
+
{
|
|
1210
|
+
"name": "wecom_doc",
|
|
1211
|
+
"action": "smartsheet_get_records",
|
|
1212
|
+
"description": "获取记录列表(支持筛选、排序、分页、按字段过滤)",
|
|
1213
|
+
"parameters": {
|
|
1214
|
+
"docId": "必填:string,文档的 docid",
|
|
1215
|
+
"sheetId": "必填:string,Smartsheet 子表 ID",
|
|
1216
|
+
"view_id": "可选:string,视图 ID",
|
|
1217
|
+
"record_ids": "可选:string[],指定记录 ID 列表",
|
|
1218
|
+
"key_type": "可选:string,返回记录中单元格的 key 类型,CELL_VALUE_KEY_TYPE_FIELD_TITLE(默认)|CELL_VALUE_KEY_TYPE_FIELD_ID",
|
|
1219
|
+
"field_titles": "可选:string[],返回指定列(字段标题数组)",
|
|
1220
|
+
"field_ids": "可选:string[],返回指定列(字段 ID 数组)",
|
|
1221
|
+
"sort": "可选:object[],排序设置,[{field_id: "字段 ID", desc: false}]",
|
|
1222
|
+
"offset": "可选:integer,偏移量,初始值为 0",
|
|
1223
|
+
"limit": "可选:integer,分页大小,最大 1000",
|
|
1224
|
+
"ver": "可选:integer,版本号",
|
|
1225
|
+
"filter_spec": "可选:object,过滤设置,{conjunction: "CONJUNCTION_AND", conditions: [...]}"
|
|
1226
|
+
},
|
|
1227
|
+
"returns": {
|
|
1228
|
+
"errcode": "integer,错误码",
|
|
1229
|
+
"errmsg": "string,错误码描述",
|
|
1230
|
+
"records": "object[],记录数组",
|
|
1231
|
+
"records[].record_id": "string,记录 ID",
|
|
1232
|
+
"records[].values": "object,记录的具体内容,key 为字段标题或字段 ID,value 为数组(根据字段类型不同而不同)",
|
|
1233
|
+
"total": "integer,记录总数",
|
|
1234
|
+
"has_more": "boolean,是否还有更多",
|
|
1235
|
+
"next": "integer,下次查询的偏移量",
|
|
1236
|
+
"ver": "integer,版本号"
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
```
|
|
1240
|
+
|
|
1241
|
+
**使用示例** - 查询全部记录:
|
|
1242
|
+
```json
|
|
1243
|
+
{
|
|
1244
|
+
"name": "wecom_doc",
|
|
1245
|
+
"action": "smartsheet_get_records",
|
|
1246
|
+
"parameters": {
|
|
1247
|
+
"docId": "DOCID123",
|
|
1248
|
+
"sheetId": "SHEET456",
|
|
1249
|
+
"offset": 0,
|
|
1250
|
+
"limit": 100
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
```
|
|
1254
|
+
|
|
1255
|
+
**使用示例** - 按字段标题返回:
|
|
1256
|
+
```json
|
|
1257
|
+
{
|
|
1258
|
+
"name": "wecom_doc",
|
|
1259
|
+
"action": "smartsheet_get_records",
|
|
1260
|
+
"parameters": {
|
|
1261
|
+
"docId": "DOCID123",
|
|
1262
|
+
"sheetId": "SHEET456",
|
|
1263
|
+
"key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
|
|
1264
|
+
"field_titles": ["姓名", "年龄", "部门"],
|
|
1265
|
+
"limit": 50
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
```
|
|
1269
|
+
|
|
1270
|
+
**使用示例** - 排序查询:
|
|
1271
|
+
```json
|
|
1272
|
+
{
|
|
1273
|
+
"name": "wecom_doc",
|
|
1274
|
+
"action": "smartsheet_get_records",
|
|
1275
|
+
"parameters": {
|
|
1276
|
+
"docId": "DOCID123",
|
|
1277
|
+
"sheetId": "SHEET456",
|
|
1278
|
+
"sort": [
|
|
1279
|
+
{"field_id": "f1gHSR", "desc": false}
|
|
1280
|
+
],
|
|
1281
|
+
"limit": 100
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
```
|
|
1285
|
+
|
|
1286
|
+
**使用示例** - 过滤查询:
|
|
1287
|
+
```json
|
|
1288
|
+
{
|
|
1289
|
+
"name": "wecom_doc",
|
|
1290
|
+
"action": "smartsheet_get_records",
|
|
1291
|
+
"parameters": {
|
|
1292
|
+
"docId": "DOCID123",
|
|
1293
|
+
"sheetId": "SHEET456",
|
|
1294
|
+
"filter_spec": {
|
|
1295
|
+
"conjunction": "CONJUNCTION_AND",
|
|
1296
|
+
"conditions": [
|
|
1297
|
+
{
|
|
1298
|
+
"field_id": "f1gHSR",
|
|
1299
|
+
"field_type": "FIELD_TYPE_TEXT",
|
|
1300
|
+
"operator": "OPERATOR_CONTAINS",
|
|
1301
|
+
"string_value": {
|
|
1302
|
+
"value": ["张三"]
|
|
1303
|
+
}
|
|
1304
|
+
}
|
|
1305
|
+
]
|
|
1306
|
+
}
|
|
1307
|
+
}
|
|
1308
|
+
}
|
|
1309
|
+
```
|
|
1310
|
+
|
|
1311
|
+
**返回示例**:
|
|
1312
|
+
```json
|
|
1313
|
+
{
|
|
1314
|
+
"errcode": 0,
|
|
1315
|
+
"errmsg": "ok",
|
|
1316
|
+
"total": 10,
|
|
1317
|
+
"has_more": false,
|
|
1318
|
+
"next": 10,
|
|
1319
|
+
"ver": 5,
|
|
1320
|
+
"records": [
|
|
1321
|
+
{
|
|
1322
|
+
"record_id": "re9IqD",
|
|
1323
|
+
"values": {
|
|
1324
|
+
"姓名": [{"type": "text", "text": "张三"}],
|
|
1325
|
+
"年龄": [25],
|
|
1326
|
+
"部门": [{"type": "text", "text": "技术部"}],
|
|
1327
|
+
"入职日期": ["1704067200000"],
|
|
1328
|
+
"是否全职": [true]
|
|
1329
|
+
}
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
"record_id": "rpS0P9",
|
|
1333
|
+
"values": {
|
|
1334
|
+
"姓名": [{"type": "text", "text": "李四"}],
|
|
1335
|
+
"年龄": [28],
|
|
1336
|
+
"部门": [{"type": "text", "text": "产品部"}],
|
|
1337
|
+
"入职日期": ["1704153600000"],
|
|
1338
|
+
"是否全职": [true]
|
|
1339
|
+
}
|
|
1340
|
+
}
|
|
1341
|
+
]
|
|
1342
|
+
}
|
|
1343
|
+
```
|
|
1344
|
+
|
|
1345
|
+
**⚠️ 重要注意事项**:
|
|
1346
|
+
1. **values 中的值都是数组** - 所有字段类型的值都是数组格式
|
|
1347
|
+
2. **文本类型带 type 字段** - `{"type": "text", "text": "内容"}`
|
|
1348
|
+
3. **数字类型直接是数字** - `[25]`、`[15000.50]`
|
|
1349
|
+
4. **日期类型是毫秒时间戳字符串** - `["1704067200000"]`
|
|
1350
|
+
5. **选项类型需要 id** - `[{"id": "opt1", "text": "选项", "style": 1}]`
|
|
1351
|
+
6. **成员类型需要 user_id** - `[{"user_id": "zhangsan"}]`
|
|
1352
|
+
|
|
1353
|
+
**过滤操作符 (Operator)**:
|
|
1354
|
+
|
|
1355
|
+
| 操作符 | 说明 |
|
|
1356
|
+
|--------|------|
|
|
1357
|
+
| OPERATOR_IS | 等于 |
|
|
1358
|
+
| OPERATOR_IS_NOT | 不等于 |
|
|
1359
|
+
| OPERATOR_CONTAINS | 包含 |
|
|
1360
|
+
| OPERATOR_DOES_NOT_CONTAIN | 不包含 |
|
|
1361
|
+
| OPERATOR_IS_GREATER | 大于 |
|
|
1362
|
+
| OPERATOR_IS_GREATER_OR_EQUAL | 大于或等于 |
|
|
1363
|
+
| OPERATOR_IS_LESS | 小于 |
|
|
1364
|
+
| OPERATOR_IS_LESS_OR_EQUAL | 小于或等于 |
|
|
1365
|
+
| OPERATOR_IS_EMPTY | 为空 |
|
|
1366
|
+
| OPERATOR_IS_NOT_EMPTY | 不为空 |
|
|
1367
|
+
|
|
1368
|
+
**过滤条件 conjunction**:
|
|
1369
|
+
- `CONJUNCTION_AND` - 多个条件之间以 and 连接
|
|
1370
|
+
- `CONJUNCTION_OR` - 多个条件之间以 or 连接
|
|
1371
|
+
|
|
1372
|
+
### 5.21 获取子表权限
|
|
1373
|
+
```json
|
|
1374
|
+
{
|
|
1375
|
+
"name": "wecom_doc",
|
|
1376
|
+
"action": "smartsheet_get_sheet_priv",
|
|
1377
|
+
"description": "获取智能表格子表权限规则",
|
|
1378
|
+
"parameters": {
|
|
1379
|
+
"docId": "文档 ID",
|
|
1380
|
+
"type": "1(全员权限)|2(额外权限)",
|
|
1381
|
+
"rule_id_list": "可选:规则 ID 列表"
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
```
|
|
1385
|
+
|
|
1386
|
+
### 5.22 更新子表权限
|
|
1387
|
+
```json
|
|
1388
|
+
{
|
|
1389
|
+
"name": "wecom_doc",
|
|
1390
|
+
"action": "smartsheet_update_sheet_priv",
|
|
1391
|
+
"description": "更新子表权限规则",
|
|
1392
|
+
"parameters": {
|
|
1393
|
+
"docId": "文档 ID",
|
|
1394
|
+
"type": "1(全员权限)|2(额外权限)",
|
|
1395
|
+
"rule_id": "可选:规则 ID",
|
|
1396
|
+
"name": "可选:规则名称",
|
|
1397
|
+
"priv_list": "权限列表"
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
```
|
|
1401
|
+
|
|
1402
|
+
### 5.23 创建权限规则
|
|
1403
|
+
```json
|
|
1404
|
+
{
|
|
1405
|
+
"name": "wecom_doc",
|
|
1406
|
+
"action": "smartsheet_create_rule",
|
|
1407
|
+
"description": "创建成员额外权限规则",
|
|
1408
|
+
"parameters": {
|
|
1409
|
+
"docId": "文档 ID",
|
|
1410
|
+
"name": "规则名称"
|
|
1411
|
+
},
|
|
1412
|
+
"returns": {
|
|
1413
|
+
"rule_id": "生成的规则 ID"
|
|
1414
|
+
}
|
|
1415
|
+
}
|
|
1416
|
+
```
|
|
1417
|
+
|
|
1418
|
+
### 5.24 修改规则成员
|
|
1419
|
+
```json
|
|
1420
|
+
{
|
|
1421
|
+
"name": "wecom_doc",
|
|
1422
|
+
"action": "smartsheet_mod_rule_member",
|
|
1423
|
+
"description": "修改权限规则的成员范围",
|
|
1424
|
+
"parameters": {
|
|
1425
|
+
"docId": "文档 ID",
|
|
1426
|
+
"rule_id": "规则 ID",
|
|
1427
|
+
"add_member_range": "可选:添加成员范围",
|
|
1428
|
+
"del_member_range": "可选:删除成员范围"
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
```
|
|
1432
|
+
|
|
1433
|
+
### 5.25 删除规则
|
|
1434
|
+
```json
|
|
1435
|
+
{
|
|
1436
|
+
"name": "wecom_doc",
|
|
1437
|
+
"action": "smartsheet_delete_rule",
|
|
1438
|
+
"description": "删除权限规则",
|
|
1439
|
+
"parameters": {
|
|
1440
|
+
"docId": "文档 ID",
|
|
1441
|
+
"rule_id_list": ["规则 ID 列表"]
|
|
1442
|
+
}
|
|
1443
|
+
}
|
|
1444
|
+
```
|
|
1445
|
+
|
|
1446
|
+
---
|
|
1447
|
+
|
|
1448
|
+
## 六、收集表操作 (Form/Collect Operations)
|
|
1449
|
+
|
|
1450
|
+
### 6.1 创建收集表
|
|
1451
|
+
```json
|
|
1452
|
+
{
|
|
1453
|
+
"name": "wecom_doc",
|
|
1454
|
+
"action": "create_form",
|
|
1455
|
+
"description": "创建收集表(表单)",
|
|
1456
|
+
"parameters": {
|
|
1457
|
+
"formInfo": {
|
|
1458
|
+
"form_title": "收集表标题(必填)",
|
|
1459
|
+
"form_desc": "可选:收集表描述",
|
|
1460
|
+
"form_header": "可选:背景图链接",
|
|
1461
|
+
"form_question": {
|
|
1462
|
+
"items": [
|
|
1463
|
+
{
|
|
1464
|
+
"question_id": 1,
|
|
1465
|
+
"title": "问题标题",
|
|
1466
|
+
"pos": 1,
|
|
1467
|
+
"status": 1,
|
|
1468
|
+
"reply_type": 1,
|
|
1469
|
+
"must_reply": true,
|
|
1470
|
+
"option_item": [{"key": 1, "value": "选项", "status": 1}]
|
|
1471
|
+
}
|
|
1472
|
+
]
|
|
1473
|
+
},
|
|
1474
|
+
"form_setting": {
|
|
1475
|
+
"fill_out_auth": 0,
|
|
1476
|
+
"allow_multi_fill": false,
|
|
1477
|
+
"can_anonymous": false
|
|
1478
|
+
}
|
|
1479
|
+
},
|
|
1480
|
+
"spaceId": "可选:空间 ID",
|
|
1481
|
+
"fatherId": "可选:父目录 fileid"
|
|
1482
|
+
},
|
|
1483
|
+
"returns": {
|
|
1484
|
+
"formId": "收集表 ID",
|
|
1485
|
+
"title": "收集表标题"
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
```
|
|
1489
|
+
|
|
1490
|
+
### 6.2 编辑收集表
|
|
1491
|
+
```json
|
|
1492
|
+
{
|
|
1493
|
+
"name": "wecom_doc",
|
|
1494
|
+
"action": "modify_form",
|
|
1495
|
+
"description": "编辑收集表(全量修改问题或设置)",
|
|
1496
|
+
"parameters": {
|
|
1497
|
+
"oper": "1(全量修改问题)|2(全量修改设置)",
|
|
1498
|
+
"formId": "收集表 ID",
|
|
1499
|
+
"formInfo": {
|
|
1500
|
+
"form_title": "可选:新标题",
|
|
1501
|
+
"form_question": { "items": [...] },
|
|
1502
|
+
"form_setting": {...}
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
|
+
}
|
|
1506
|
+
```
|
|
1507
|
+
|
|
1508
|
+
### 6.3 获取收集表信息
|
|
1509
|
+
```json
|
|
1510
|
+
{
|
|
1511
|
+
"name": "wecom_doc",
|
|
1512
|
+
"action": "get_form_info",
|
|
1513
|
+
"description": "获取收集表详细信息",
|
|
1514
|
+
"parameters": {
|
|
1515
|
+
"formId": "收集表 ID"
|
|
1516
|
+
},
|
|
1517
|
+
"returns": {
|
|
1518
|
+
"form_info": {
|
|
1519
|
+
"formid": "收集表 ID",
|
|
1520
|
+
"form_title": "标题",
|
|
1521
|
+
"form_question": { "items": [...] },
|
|
1522
|
+
"form_setting": {...},
|
|
1523
|
+
"repeated_id": ["周期 ID 列表"]
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
```
|
|
1528
|
+
|
|
1529
|
+
### 6.4 获取收集表答案
|
|
1530
|
+
```json
|
|
1531
|
+
{
|
|
1532
|
+
"name": "wecom_doc",
|
|
1533
|
+
"action": "get_form_answer",
|
|
1534
|
+
"description": "获取收集表提交的答案(最多 100 个)",
|
|
1535
|
+
"parameters": {
|
|
1536
|
+
"repeatedId": "收集表周期 ID",
|
|
1537
|
+
"answerIds": "可选:答案 ID 列表(最多 100 个)"
|
|
1538
|
+
},
|
|
1539
|
+
"returns": {
|
|
1540
|
+
"answer_list": [
|
|
1541
|
+
{
|
|
1542
|
+
"answer_id": 15,
|
|
1543
|
+
"user_name": "张三",
|
|
1544
|
+
"reply": {
|
|
1545
|
+
"items": [
|
|
1546
|
+
{ "question_id": 1, "text_reply": "答案" }
|
|
1547
|
+
]
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
]
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
```
|
|
1554
|
+
|
|
1555
|
+
### 6.5 获取收集表统计
|
|
1556
|
+
```json
|
|
1557
|
+
{
|
|
1558
|
+
"name": "wecom_doc",
|
|
1559
|
+
"action": "get_form_statistic",
|
|
1560
|
+
"description": "获取收集表统计信息",
|
|
1561
|
+
"parameters": {
|
|
1562
|
+
"requests": [
|
|
1563
|
+
{
|
|
1564
|
+
"repeated_id": "周期 ID",
|
|
1565
|
+
"req_type": 1,
|
|
1566
|
+
"start_time": 1667395287,
|
|
1567
|
+
"end_time": 1668418369,
|
|
1568
|
+
"limit": 20,
|
|
1569
|
+
"cursor": 1
|
|
1570
|
+
}
|
|
1571
|
+
]
|
|
1572
|
+
},
|
|
1573
|
+
"returns": {
|
|
1574
|
+
"fill_cnt": 10,
|
|
1575
|
+
"fill_user_cnt": 8,
|
|
1576
|
+
"unfill_user_cnt": 5,
|
|
1577
|
+
"submit_users": [...],
|
|
1578
|
+
"unfill_users": [...]
|
|
1579
|
+
}
|
|
1580
|
+
}
|
|
1581
|
+
```
|
|
1582
|
+
|
|
1583
|
+
---
|
|
1584
|
+
|
|
1585
|
+
## 七、高级账号管理 (Advanced Account Management)
|
|
1586
|
+
|
|
1587
|
+
### 7.1 分配高级功能账号
|
|
1588
|
+
```json
|
|
1589
|
+
{
|
|
1590
|
+
"name": "wecom_doc",
|
|
1591
|
+
"action": "doc_assign_advanced_account",
|
|
1592
|
+
"description": "分配文档高级功能账号",
|
|
1593
|
+
"parameters": {
|
|
1594
|
+
"userid_list": ["成员 ID 列表"]
|
|
1595
|
+
},
|
|
1596
|
+
"returns": {
|
|
1597
|
+
"jobid": "任务 ID"
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
```
|
|
1601
|
+
|
|
1602
|
+
### 7.2 取消高级功能账号
|
|
1603
|
+
```json
|
|
1604
|
+
{
|
|
1605
|
+
"name": "wecom_doc",
|
|
1606
|
+
"action": "doc_cancel_advanced_account",
|
|
1607
|
+
"description": "取消文档高级功能账号",
|
|
1608
|
+
"parameters": {
|
|
1609
|
+
"userid_list": ["成员 ID 列表"]
|
|
1610
|
+
},
|
|
1611
|
+
"returns": {
|
|
1612
|
+
"jobid": "任务 ID"
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
1615
|
+
```
|
|
1616
|
+
|
|
1617
|
+
### 7.3 获取高级账号列表
|
|
1618
|
+
```json
|
|
1619
|
+
{
|
|
1620
|
+
"name": "wecom_doc",
|
|
1621
|
+
"action": "doc_get_advanced_account_list",
|
|
1622
|
+
"description": "获取高级功能账号列表",
|
|
1623
|
+
"parameters": {
|
|
1624
|
+
"cursor": "可选:分页游标",
|
|
1625
|
+
"limit": "可选:每页数量"
|
|
1626
|
+
},
|
|
1627
|
+
"returns": {
|
|
1628
|
+
"user_list": [...],
|
|
1629
|
+
"has_more": "是否还有更多"
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
```
|
|
1633
|
+
|
|
1634
|
+
---
|
|
1635
|
+
|
|
1636
|
+
## 八、字段类型对照表 (Field Type Reference)
|
|
1637
|
+
|
|
1638
|
+
### 智能表格字段类型 (FieldType)
|
|
1639
|
+
|
|
1640
|
+
| 类型值 | 说明 | 对应 property |
|
|
1641
|
+
|--------|------|--------------|
|
|
1642
|
+
| FIELD_TYPE_TEXT | 文本 | - |
|
|
1643
|
+
| FIELD_TYPE_NUMBER | 数字 | property_number |
|
|
1644
|
+
| FIELD_TYPE_CHECKBOX | 复选框 | property_checkbox |
|
|
1645
|
+
| FIELD_TYPE_DATE_TIME | 日期 | property_date_time |
|
|
1646
|
+
| FIELD_TYPE_IMAGE | 图片 | - |
|
|
1647
|
+
| FIELD_TYPE_ATTACHMENT | 文件 | property_attachment |
|
|
1648
|
+
| FIELD_TYPE_USER | 成员 | property_user |
|
|
1649
|
+
| FIELD_TYPE_URL | 超链接 | property_url |
|
|
1650
|
+
| FIELD_TYPE_SELECT | 多选 | property_select |
|
|
1651
|
+
| FIELD_TYPE_SINGLE_SELECT | 单选 | property_single_select |
|
|
1652
|
+
| FIELD_TYPE_CREATED_USER | 创建人 | - |
|
|
1653
|
+
| FIELD_TYPE_MODIFIED_USER | 最后编辑人 | - |
|
|
1654
|
+
| FIELD_TYPE_CREATED_TIME | 创建时间 | property_created_time |
|
|
1655
|
+
| FIELD_TYPE_MODIFIED_TIME | 最后编辑时间 | property_modified_time |
|
|
1656
|
+
| FIELD_TYPE_PROGRESS | 进度 | property_progress |
|
|
1657
|
+
| FIELD_TYPE_PHONE_NUMBER | 电话 | - |
|
|
1658
|
+
| FIELD_TYPE_EMAIL | 邮件 | - |
|
|
1659
|
+
| FIELD_TYPE_REFERENCE | 关联 | property_reference |
|
|
1660
|
+
| FIELD_TYPE_LOCATION | 地理位置 | property_location |
|
|
1661
|
+
| FIELD_TYPE_CURRENCY | 货币 | property_currency |
|
|
1662
|
+
| FIELD_TYPE_WWGROUP | 群 | property_ww_group |
|
|
1663
|
+
| FIELD_TYPE_AUTONUMBER | 自动编号 | property_auto_number |
|
|
1664
|
+
| FIELD_TYPE_PERCENTAGE | 百分数 | property_percentage |
|
|
1665
|
+
| FIELD_TYPE_BARCODE | 条码 | property_barcode |
|
|
1666
|
+
|
|
1667
|
+
### 收集表问题类型 (reply_type)
|
|
1668
|
+
|
|
1669
|
+
| 类型值 | 说明 |
|
|
1670
|
+
|--------|------|
|
|
1671
|
+
| 1 | 文本 |
|
|
1672
|
+
| 2 | 单选 |
|
|
1673
|
+
| 3 | 多选 |
|
|
1674
|
+
| 5 | 位置 |
|
|
1675
|
+
| 9 | 图片 |
|
|
1676
|
+
| 10 | 文件 |
|
|
1677
|
+
| 11 | 日期 |
|
|
1678
|
+
| 14 | 时间 |
|
|
1679
|
+
| 15 | 下拉列表 |
|
|
1680
|
+
| 16 | 体温 |
|
|
1681
|
+
| 17 | 签名 |
|
|
1682
|
+
| 18 | 部门 |
|
|
1683
|
+
| 19 | 成员 |
|
|
1684
|
+
| 22 | 时长 |
|
|
1685
|
+
|
|
1686
|
+
---
|
|
1687
|
+
|
|
1688
|
+
## 九、使用示例 (Usage Examples)
|
|
1689
|
+
|
|
1690
|
+
### 示例 1:创建文档并添加协作者
|
|
1691
|
+
```json
|
|
1692
|
+
{
|
|
1693
|
+
"name": "wecom_doc",
|
|
1694
|
+
"action": "create",
|
|
1695
|
+
"parameters": {
|
|
1696
|
+
"docName": "项目计划",
|
|
1697
|
+
"docType": "doc",
|
|
1698
|
+
"collaborators": [{"userid": "zhangsan"}, {"userid": "lisi"}],
|
|
1699
|
+
"init_content": [
|
|
1700
|
+
{"type": "text", "content": "项目计划文档"},
|
|
1701
|
+
{"type": "text", "content": "一、项目目标"},
|
|
1702
|
+
{"type": "text", "content": "二、项目进度"}
|
|
1703
|
+
]
|
|
1704
|
+
}
|
|
1705
|
+
}
|
|
1706
|
+
```
|
|
1707
|
+
|
|
1708
|
+
### 示例 2:批量更新文档内容
|
|
1709
|
+
```json
|
|
1710
|
+
{
|
|
1711
|
+
"name": "wecom_doc",
|
|
1712
|
+
"action": "update_content",
|
|
1713
|
+
"parameters": {
|
|
1714
|
+
"docId": "DOCID123",
|
|
1715
|
+
"requests": [
|
|
1716
|
+
{"replace_text": {"text": "新标题", "ranges": [{"start_index": 0, "length": 5}]}},
|
|
1717
|
+
{"insert_text": {"text": "新增段落", "location": {"index": 10}}},
|
|
1718
|
+
{"insert_image": {"image_id": "https://...", "location": {"index": 20}}}
|
|
1719
|
+
]
|
|
1720
|
+
}
|
|
1721
|
+
}
|
|
1722
|
+
```
|
|
1723
|
+
|
|
1724
|
+
### 示例 3:智能表格添加记录
|
|
1725
|
+
```json
|
|
1726
|
+
{
|
|
1727
|
+
"name": "wecom_doc",
|
|
1728
|
+
"action": "smartsheet_add_records",
|
|
1729
|
+
"parameters": {
|
|
1730
|
+
"docId": "DOCID456",
|
|
1731
|
+
"sheetId": "SHEET789",
|
|
1732
|
+
"records": [
|
|
1733
|
+
{
|
|
1734
|
+
"values": {
|
|
1735
|
+
"姓名": [{"type": "text", "text": "张三"}],
|
|
1736
|
+
"年龄": [25],
|
|
1737
|
+
"部门": [{"type": "text", "text": "技术部"}]
|
|
1738
|
+
}
|
|
1739
|
+
}
|
|
1740
|
+
]
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
```
|
|
1744
|
+
|
|
1745
|
+
### 示例 4:创建收集表
|
|
1746
|
+
```json
|
|
1747
|
+
{
|
|
1748
|
+
"name": "wecom_doc",
|
|
1749
|
+
"action": "create_form",
|
|
1750
|
+
"parameters": {
|
|
1751
|
+
"formInfo": {
|
|
1752
|
+
"form_title": "员工满意度调查",
|
|
1753
|
+
"form_question": {
|
|
1754
|
+
"items": [
|
|
1755
|
+
{
|
|
1756
|
+
"question_id": 1,
|
|
1757
|
+
"title": "您的部门",
|
|
1758
|
+
"pos": 1,
|
|
1759
|
+
"reply_type": 15,
|
|
1760
|
+
"must_reply": true,
|
|
1761
|
+
"option_item": [
|
|
1762
|
+
{"key": 1, "value": "技术部"},
|
|
1763
|
+
{"key": 2, "value": "产品部"},
|
|
1764
|
+
{"key": 3, "value": "市场部"}
|
|
1765
|
+
]
|
|
1766
|
+
},
|
|
1767
|
+
{
|
|
1768
|
+
"question_id": 2,
|
|
1769
|
+
"title": "满意度评分",
|
|
1770
|
+
"pos": 2,
|
|
1771
|
+
"reply_type": 2,
|
|
1772
|
+
"must_reply": true,
|
|
1773
|
+
"option_item": [
|
|
1774
|
+
{"key": 1, "value": "非常满意"},
|
|
1775
|
+
{"key": 2, "value": "满意"},
|
|
1776
|
+
{"key": 3, "value": "一般"},
|
|
1777
|
+
{"key": 4, "value": "不满意"}
|
|
1778
|
+
]
|
|
1779
|
+
}
|
|
1780
|
+
]
|
|
1781
|
+
}
|
|
1782
|
+
}
|
|
1783
|
+
}
|
|
1784
|
+
}
|
|
1785
|
+
```
|
|
1786
|
+
|
|
1787
|
+
---
|
|
1788
|
+
|
|
1789
|
+
## 九、智能表格完整使用流程 (Smart Table Complete Workflow)
|
|
1790
|
+
|
|
1791
|
+
### 步骤 1:创建智能表格
|
|
1792
|
+
|
|
1793
|
+
```json
|
|
1794
|
+
{
|
|
1795
|
+
"name": "wecom_doc",
|
|
1796
|
+
"action": "create",
|
|
1797
|
+
"parameters": {
|
|
1798
|
+
"docName": "员工信息表",
|
|
1799
|
+
"docType": "smart_table"
|
|
1800
|
+
}
|
|
1801
|
+
}
|
|
1802
|
+
```
|
|
1803
|
+
|
|
1804
|
+
**返回**:
|
|
1805
|
+
```json
|
|
1806
|
+
{
|
|
1807
|
+
"docId": "DOCID123",
|
|
1808
|
+
"url": "https://doc.weixin.qq.com/smart_table/DOCID123",
|
|
1809
|
+
"title": "员工信息表",
|
|
1810
|
+
"resourceType": "10"
|
|
1811
|
+
}
|
|
1812
|
+
```
|
|
1813
|
+
|
|
1814
|
+
---
|
|
1815
|
+
|
|
1816
|
+
### 步骤 2:添加自定义字段
|
|
1817
|
+
|
|
1818
|
+
```json
|
|
1819
|
+
{
|
|
1820
|
+
"name": "wecom_doc",
|
|
1821
|
+
"action": "smartsheet_add_fields",
|
|
1822
|
+
"parameters": {
|
|
1823
|
+
"docId": "DOCID123",
|
|
1824
|
+
"sheetId": "SHEET456",
|
|
1825
|
+
"fields": [
|
|
1826
|
+
{
|
|
1827
|
+
"field_title": "姓名",
|
|
1828
|
+
"field_type": "FIELD_TYPE_TEXT"
|
|
1829
|
+
},
|
|
1830
|
+
{
|
|
1831
|
+
"field_title": "年龄",
|
|
1832
|
+
"field_type": "FIELD_TYPE_NUMBER",
|
|
1833
|
+
"property_number": {
|
|
1834
|
+
"decimal_places": 0,
|
|
1835
|
+
"use_separate": false
|
|
1836
|
+
}
|
|
1837
|
+
},
|
|
1838
|
+
{
|
|
1839
|
+
"field_title": "部门",
|
|
1840
|
+
"field_type": "FIELD_TYPE_SELECT",
|
|
1841
|
+
"property_select": {
|
|
1842
|
+
"is_quick_add": true,
|
|
1843
|
+
"options": [
|
|
1844
|
+
{"text": "技术部", "style": 1},
|
|
1845
|
+
{"text": "产品部", "style": 2},
|
|
1846
|
+
{"text": "市场部", "style": 3}
|
|
1847
|
+
]
|
|
1848
|
+
}
|
|
1849
|
+
},
|
|
1850
|
+
{
|
|
1851
|
+
"field_title": "入职日期",
|
|
1852
|
+
"field_type": "FIELD_TYPE_DATE_TIME",
|
|
1853
|
+
"property_date_time": {
|
|
1854
|
+
"format": "yyyy-mm-dd",
|
|
1855
|
+
"auto_fill": false
|
|
1856
|
+
}
|
|
1857
|
+
},
|
|
1858
|
+
{
|
|
1859
|
+
"field_title": "工资",
|
|
1860
|
+
"field_type": "FIELD_TYPE_NUMBER",
|
|
1861
|
+
"property_number": {
|
|
1862
|
+
"decimal_places": 2,
|
|
1863
|
+
"use_separate": true
|
|
1864
|
+
}
|
|
1865
|
+
},
|
|
1866
|
+
{
|
|
1867
|
+
"field_title": "是否全职",
|
|
1868
|
+
"field_type": "FIELD_TYPE_CHECKBOX",
|
|
1869
|
+
"property_checkbox": {
|
|
1870
|
+
"checked": true
|
|
1871
|
+
}
|
|
1872
|
+
}
|
|
1873
|
+
]
|
|
1874
|
+
}
|
|
1875
|
+
}
|
|
1876
|
+
```
|
|
1877
|
+
|
|
1878
|
+
---
|
|
1879
|
+
|
|
1880
|
+
### 步骤 3:添加记录
|
|
1881
|
+
|
|
1882
|
+
```json
|
|
1883
|
+
{
|
|
1884
|
+
"name": "wecom_doc",
|
|
1885
|
+
"action": "smartsheet_add_records",
|
|
1886
|
+
"parameters": {
|
|
1887
|
+
"docId": "DOCID123",
|
|
1888
|
+
"sheetId": "SHEET456",
|
|
1889
|
+
"records": [
|
|
1890
|
+
{
|
|
1891
|
+
"values": {
|
|
1892
|
+
"姓名": [{"type": "text", "text": "张三"}],
|
|
1893
|
+
"年龄": [25],
|
|
1894
|
+
"部门": [{"id": "opt1", "text": "技术部", "style": 1}],
|
|
1895
|
+
"入职日期": ["1704067200000"],
|
|
1896
|
+
"工资": [15000.50],
|
|
1897
|
+
"是否全职": [true]
|
|
1898
|
+
}
|
|
1899
|
+
},
|
|
1900
|
+
{
|
|
1901
|
+
"values": {
|
|
1902
|
+
"姓名": [{"type": "text", "text": "李四"}],
|
|
1903
|
+
"年龄": [28],
|
|
1904
|
+
"部门": [{"id": "opt2", "text": "产品部", "style": 2}],
|
|
1905
|
+
"入职日期": ["1704153600000"],
|
|
1906
|
+
"工资": [18000.00],
|
|
1907
|
+
"是否全职": [true]
|
|
1908
|
+
}
|
|
1909
|
+
}
|
|
1910
|
+
]
|
|
1911
|
+
}
|
|
1912
|
+
}
|
|
1913
|
+
```
|
|
1914
|
+
|
|
1915
|
+
**⚠️ 关键格式说明**:
|
|
1916
|
+
- **所有字段值都是数组** - `[25]` 而不是 `25`
|
|
1917
|
+
- **文本类型必须带 type** - `[{"type": "text", "text": "张三"}]`
|
|
1918
|
+
- **选项类型需要 id** - `[{"id": "opt1", "text": "技术部", "style": 1}]`
|
|
1919
|
+
- **日期类型是毫秒时间戳** - `["1704067200000"]`
|
|
1920
|
+
|
|
1921
|
+
---
|
|
1922
|
+
|
|
1923
|
+
### 步骤 4:查询记录
|
|
1924
|
+
|
|
1925
|
+
```json
|
|
1926
|
+
{
|
|
1927
|
+
"name": "wecom_doc",
|
|
1928
|
+
"action": "smartsheet_get_records",
|
|
1929
|
+
"parameters": {
|
|
1930
|
+
"docId": "DOCID123",
|
|
1931
|
+
"sheetId": "SHEET456",
|
|
1932
|
+
"offset": 0,
|
|
1933
|
+
"limit": 100
|
|
1934
|
+
}
|
|
1935
|
+
}
|
|
1936
|
+
```
|
|
1937
|
+
|
|
1938
|
+
**返回**:
|
|
1939
|
+
```json
|
|
1940
|
+
{
|
|
1941
|
+
"errcode": 0,
|
|
1942
|
+
"errmsg": "ok",
|
|
1943
|
+
"total": 2,
|
|
1944
|
+
"has_more": false,
|
|
1945
|
+
"records": [
|
|
1946
|
+
{
|
|
1947
|
+
"record_id": "re9IqD",
|
|
1948
|
+
"values": {
|
|
1949
|
+
"姓名": [{"type": "text", "text": "张三"}],
|
|
1950
|
+
"年龄": [25],
|
|
1951
|
+
"部门": [{"id": "opt1", "text": "技术部", "style": 1}],
|
|
1952
|
+
"入职日期": ["1704067200000"],
|
|
1953
|
+
"工资": [15000.50],
|
|
1954
|
+
"是否全职": [true]
|
|
1955
|
+
}
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
"record_id": "rpS0P9",
|
|
1959
|
+
"values": {
|
|
1960
|
+
"姓名": [{"type": "text", "text": "李四"}],
|
|
1961
|
+
"年龄": [28],
|
|
1962
|
+
"部门": [{"id": "opt2", "text": "产品部", "style": 2}],
|
|
1963
|
+
"入职日期": ["1704153600000"],
|
|
1964
|
+
"工资": [18000.00],
|
|
1965
|
+
"是否全职": [true]
|
|
1966
|
+
}
|
|
1967
|
+
}
|
|
1968
|
+
]
|
|
1969
|
+
}
|
|
1970
|
+
```
|
|
1971
|
+
|
|
1972
|
+
---
|
|
1973
|
+
|
|
1974
|
+
### 步骤 5:更新记录
|
|
1975
|
+
|
|
1976
|
+
```json
|
|
1977
|
+
{
|
|
1978
|
+
"name": "wecom_doc",
|
|
1979
|
+
"action": "smartsheet_update_records",
|
|
1980
|
+
"parameters": {
|
|
1981
|
+
"docId": "DOCID123",
|
|
1982
|
+
"sheetId": "SHEET456",
|
|
1983
|
+
"records": [
|
|
1984
|
+
{
|
|
1985
|
+
"record_id": "re9IqD",
|
|
1986
|
+
"values": {
|
|
1987
|
+
"姓名": [{"type": "text", "text": "张三丰"}],
|
|
1988
|
+
"工资": [16000.00]
|
|
1989
|
+
}
|
|
1990
|
+
}
|
|
1991
|
+
]
|
|
1992
|
+
}
|
|
1993
|
+
}
|
|
1994
|
+
```
|
|
1995
|
+
|
|
1996
|
+
---
|
|
1997
|
+
|
|
1998
|
+
### 步骤 6:删除记录
|
|
1999
|
+
|
|
2000
|
+
```json
|
|
2001
|
+
{
|
|
2002
|
+
"name": "wecom_doc",
|
|
2003
|
+
"action": "smartsheet_del_records",
|
|
2004
|
+
"parameters": {
|
|
2005
|
+
"docId": "DOCID123",
|
|
2006
|
+
"sheetId": "SHEET456",
|
|
2007
|
+
"record_ids": ["rpS0P9"]
|
|
2008
|
+
}
|
|
2009
|
+
}
|
|
2010
|
+
```
|
|
2011
|
+
|
|
2012
|
+
---
|
|
2013
|
+
|
|
2014
|
+
## 十、注意事项 (Important Notes)
|
|
2015
|
+
|
|
2016
|
+
### 1. 批量操作限制
|
|
2017
|
+
- **文档批量更新**:最多 30 个操作
|
|
2018
|
+
- **表格批量更新**:最多 5 个操作
|
|
2019
|
+
- **收集表答案查询**:最多 100 个答案 ID
|
|
2020
|
+
- **智能表格字段操作**:单次可添加/更新/删除多个字段
|
|
2021
|
+
- **智能表格记录操作**:单次添加/删除建议在 500 行内
|
|
2022
|
+
|
|
2023
|
+
### 2. 版本控制
|
|
2024
|
+
- **更新文档内容时**:version 与最新版差值不能超过 100
|
|
2025
|
+
- **建议**:每次更新前获取最新文档内容
|
|
2026
|
+
|
|
2027
|
+
### 3. 权限说明
|
|
2028
|
+
- **自建应用**:需配置到"可调用应用"列表
|
|
2029
|
+
- **第三方应用**:需具有"文档"权限
|
|
2030
|
+
- **代开发自建应用**:需具有"文档"权限
|
|
2031
|
+
- **只能操作**:该应用创建的文档
|
|
2032
|
+
|
|
2033
|
+
### 4. 智能表格字段类型匹配
|
|
2034
|
+
- **添加/更新字段时**:field_type 必须与 property_* 属性匹配
|
|
2035
|
+
- **更新字段时**:不能修改字段类型
|
|
2036
|
+
- **一种字段类型对应一种字段属性**
|
|
2037
|
+
|
|
2038
|
+
### 5. 智能表格记录格式(⚠️ 重要)
|
|
2039
|
+
- **所有字段值都必须是数组** - 即使是单个值也要用数组包裹
|
|
2040
|
+
- ✅ 正确:`[25]`、`[{"type": "text", "text": "内容"}]`
|
|
2041
|
+
- ❌ 错误:`25`、`{"type": "text", "text": "内容"}`
|
|
2042
|
+
- **文本类型必须带 type 字段** - `{"type": "text", "text": "内容"}` 或 `{"type": "url", "text": "文本", "link": "URL"}`
|
|
2043
|
+
- **数字类型直接是数字** - `[25]`、`[15000.50]`
|
|
2044
|
+
- **日期类型是毫秒时间戳字符串** - `["1704067200000"]`
|
|
2045
|
+
- **选项类型需要 id** - `[{"id": "opt1", "text": "选项", "style": 1}]`
|
|
2046
|
+
- **成员类型需要 user_id** - `[{"user_id": "zhangsan"}]`
|
|
2047
|
+
- **不能添加/更新的字段类型**:创建时间、最后编辑时间、创建人、最后编辑人(系统自动填充)
|
|
2048
|
+
|
|
2049
|
+
### 6. 智能表格限制
|
|
2050
|
+
- **单表最多 100000 行记录**
|
|
2051
|
+
- **单表最多 1500000 个单元格**
|
|
2052
|
+
- **单表最多 150 个字段**
|
|
2053
|
+
- **单表最多 200 个视图**
|
|
2054
|
+
- **单次添加/更新/删除记录建议在 500 行内**
|
|
2055
|
+
|
|
2056
|
+
### 7. key_type 参数
|
|
2057
|
+
- **CELL_VALUE_KEY_TYPE_FIELD_TITLE**(默认)- 使用字段标题作为 values 的 key
|
|
2058
|
+
- **CELL_VALUE_KEY_TYPE_FIELD_ID** - 使用字段 ID 作为 values 的 key
|
|
2059
|
+
- **添加记录和查询记录时都要注意保持一致**
|
|
2060
|
+
|
|
2061
|
+
### 8. 常见错误排查
|
|
2062
|
+
|
|
2063
|
+
| 问题 | 原因 | 解决方案 |
|
|
2064
|
+
|------|------|----------|
|
|
2065
|
+
| 数据都填充到一列 | values 的 key 不是字段标题或字段 ID | 检查 key_type 设置,确保 key 与字段标题或字段 ID 完全匹配 |
|
|
2066
|
+
| 多余的行 | 记录数组格式错误 | 确保 records 是数组,每个记录是独立对象 |
|
|
2067
|
+
| 无法添加自定义字段 | field_type 或 property 不匹配 | 检查字段类型与属性的对应关系 |
|
|
2068
|
+
| 无法修改默认字段 | 尝试修改系统字段 | 创建时间、最后编辑时间、创建人、最后编辑人不能修改 |
|
|
2069
|
+
| 添加记录失败 | 值格式不是数组 | 确保所有字段值都是数组格式 |
|
|
2070
|
+
| 日期字段错误 | 使用了秒级时间戳 | 使用毫秒级时间戳字符串,如 "1704067200000" |
|
|
2071
|
+
| 选项字段错误 | 缺少 id 或格式错误 | 使用 `[{"id": "选项 ID", "text": "选项文本", "style": 1}]` 格式 |
|
|
2072
|
+
|
|
2073
|
+
---
|
|
2074
|
+
|
|
2075
|
+
**文档版本**: 2026-03-18
|
|
2076
|
+
**适用版本**: OpenClaw WeChat Plugin v2.3.16+
|
|
2077
|
+
**官方文档**: 企业微信开放平台 - 文档 API
|
|
2078
|
+
|
|
2079
|
+
---
|
|
2080
|
+
|
|
2081
|
+
## 修正记录 (Revision History)
|
|
2082
|
+
|
|
2083
|
+
### 2026-03-18 重大修正
|
|
2084
|
+
|
|
2085
|
+
#### 修复的问题:
|
|
2086
|
+
|
|
2087
|
+
1. **添加记录数据格式错误** ❌ → ✅
|
|
2088
|
+
- **问题**:数据格式不正确,导致所有数据填充到一列
|
|
2089
|
+
- **原因**:values 的值应该是数组,但可能使用了直接值
|
|
2090
|
+
- **修正**:明确所有字段值都必须是数组格式
|
|
2091
|
+
- 文本:`[{"type": "text", "text": "内容"}]`
|
|
2092
|
+
- 数字:`[25]`
|
|
2093
|
+
- 日期:`["1704067200000"]`(毫秒时间戳)
|
|
2094
|
+
- 选项:`[{"id": "opt1", "text": "选项", "style": 1}]`
|
|
2095
|
+
|
|
2096
|
+
2. **缺少字段类型与值类型对照表** ❌ → ✅
|
|
2097
|
+
- **问题**:没有明确说明每种字段类型对应的值格式
|
|
2098
|
+
- **修正**:添加完整的字段类型与值类型对照表
|
|
2099
|
+
- **包含**:文本、数字、日期、多选、单选、成员、复选框、进度、电话、邮箱、链接、货币、百分数、条码、地理位置
|
|
2100
|
+
|
|
2101
|
+
3. **添加字段属性不完整** ❌ → ✅
|
|
2102
|
+
- **问题**:缺少各种字段类型的属性说明
|
|
2103
|
+
- **修正**:添加所有 22 种字段类型的属性说明
|
|
2104
|
+
- **包含**:property_number、property_checkbox、property_date_time 等
|
|
2105
|
+
|
|
2106
|
+
4. **更新记录说明不清晰** ❌ → ✅
|
|
2107
|
+
- **问题**:没有明确说明不能更新的字段类型
|
|
2108
|
+
- **修正**:明确指出创建时间、最后编辑时间、创建人、最后编辑人不能更新
|
|
2109
|
+
|
|
2110
|
+
5. **查询记录返回格式不明确** ❌ → ✅
|
|
2111
|
+
- **问题**:没有说明返回的 values 格式
|
|
2112
|
+
- **修正**:添加完整的返回示例,展示正确的 values 格式
|
|
2113
|
+
|
|
2114
|
+
6. **缺少完整使用流程** ❌ → ✅
|
|
2115
|
+
- **问题**:没有从创建到使用的完整示例
|
|
2116
|
+
- **修正**:添加 6 步完整使用流程(创建→添加字段→添加记录→查询→更新→删除)
|
|
2117
|
+
|
|
2118
|
+
7. **常见错误排查缺失** ❌ → ✅
|
|
2119
|
+
- **问题**:遇到问题时无法快速定位
|
|
2120
|
+
- **修正**:添加常见错误排查表格,包含问题、原因、解决方案
|
|
2121
|
+
|
|
2122
|
+
#### 新增内容:
|
|
2123
|
+
|
|
2124
|
+
1. **智能表格完整使用流程** - 6 步完整示例
|
|
2125
|
+
2. **字段类型与值类型对照表** - 15 种字段类型的值格式
|
|
2126
|
+
3. **字段类型与属性对照表** - 22 种字段类型的属性说明
|
|
2127
|
+
4. **过滤操作符对照表** - 10 种操作符说明
|
|
2128
|
+
5. **常见错误排查表** - 7 种常见问题及解决方案
|
|
2129
|
+
6. **key_type 参数说明** - 明确两种 key 类型的区别
|
|
2130
|
+
|
|
2131
|
+
#### 优化内容:
|
|
2132
|
+
|
|
2133
|
+
1. **参数说明标准化** - 所有参数都标注了必填/可选、类型、说明
|
|
2134
|
+
2. **使用示例丰富化** - 每个接口都有多个使用示例
|
|
2135
|
+
3. **注意事项分类化** - 按主题分类,便于查找
|
|
2136
|
+
4. **返回值完整化** - 所有接口都有完整的返回值说明
|