企业微信——智能表格学习
智能表格
应用限制条件
获取 token
https://developer.work.weixin.qq.com/document/10013#%E5%BC%80%E5%8F%91%E6%AD%A5%E9%AA%A4
开发步骤
你可以通过以下步骤,使用access_token来访问企业微信的接口。需要注意的是,所有的接口需使用Https协议、Json数据格式、UTF8编码。
注:查看接口说明中,参数中标注大写的单词,表示为需要替换的变量。
第一步:获取secret
- 通讯录管理、外部联系人管理、审批、打卡等基础应用是企业微信默认集成的应用,可以直接开启并拿到secret。参考上文secret的介绍。
- 如果企业需要开发自定义的应用,进入“企业应用”页面,在“自建应用”栏点击“创建应用”,完成应用的添加和配置,详细步骤请参见应用概述。
第二步:开启接收消息模式
开启接收消息模式并不是必须步骤,但是如果在你的企业应用中需要用到如下功能时需提前开启接收消息模式。
- 获取企业成员的地理位置信息
- 动态调整企业应用的信息
- 获取企业成员点击事件类型的应用菜单行为
- 获取企业成员通过应用给企业后台发送的消息
关于如何开启接收消息模式,请阅读接收消息配置章节。
第三步:获取access_token
**请求方式:**GET(HTTPS)
**请求URL:**https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
注:此处标注大写的单词ID和SECRET,为需要替换的变量,根据实际获取值更新。其它接口也采用相同的标注,不再说明。
若企业安装了第三方应用,该服务商可通过“获取企业access_token”获得此调用凭证。
参数说明:
参数 | 必须 | 说明 |
---|---|---|
corpid | 是 | 企业ID |
corpsecret | 是 | 应用的凭证密钥 |
权限说明:
每个应用有独立的secret,所以每个应用的access_token应该分开来获取
返回结果:
{
"errcode":0,
"errmsg":"",
"access_token": "accesstoken000001",
"expires_in": 7200
}
参数 | 说明 |
---|---|
access_token | 获取到的凭证,最长为512字节 |
expires_in | 凭证的有效时间(秒) |
api
创建文件
https://developer.work.weixin.qq.com/document/path/97470
请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/create_doc?access_token=ACCESS_TOKEN
请求包体
{
"spaceid": "SPACEID",
"fatherid": "FATHERID",
"doc_type": 3,
"doc_name": "DOC_NAME",
"admin_users": ["USERID1", "USERID2", "USERID3"]
}
参数说明
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
spaceid | string | 否 | 空间spaceid。若指定spaceid ,则fatherid 也要同时指定 |
fatherid | string | 否 | 父目录fileid, 在根目录时为空间spaceid |
doc_type | uint32 | 是 | 文档类型, 3:文档 4:表格 10:智能表格 |
doc_name | string | 是 | 文档名字(注意:文件名最多填255个字符, 超过255个字符会被截断) |
admin_users | string[] | 否 | 文档管理员userid |
说明:
新增文档包含一个默认Sheet 名:q979lj
文档查询
https://qyapi.weixin.qq.com/cgi-bin/wedoc/get_doc_base_info
{
"docid": "dc1g39eaMOXvG5KOR6VDeI0UJ6xcFqv2hqoPxy4AiKXS5NiKwibbKcNcAlzKega0-Mb26JGiuUnG-n3X1g1sIEyA"
}
新增sheet
https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/add_sheet
{
"docid": "dcNCrxIDPxTtI8QzxxxDA0zKIPg",
"properties": {
"title": "智能表111"
}
}
说明:新增 sheet 包含一个默认字段:fabcde
查询sheet
论坛问题:https://developer.work.weixin.qq.com/community/question/detail?content_id=16671111556455089080
https://developer.work.weixin.qq.com/document/path/99911
{
“docid”: “dc1g39eaMOXvG5KOR6VDeI0UJ6xcFqv2hqoPxy4AiKXS5NiKwibbKcNcAlzKega0-Mb26JGiuUnG-n3X1g1sIEyA”
}
重命名sheet
https://developer.work.weixin.qq.com/document/path/100215
查看字段
https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/get_fields
{
"docid": "dc1g39eaMOXvG5KOR6VDeI0UJ6xcFqv2hqoPxy4AiKXS5NiKwibbKcNcAlzKega0-Mb26JGiuUnG-n3X1g1sIEyA",
"sheet_id": "q979lj",
"offset": 0,
"limit": 10
}
{
"errcode": 0,
"errmsg": "ok",
"total": 13,
"has_more": true,
"next": 10,
"fields": [
{
"field_id": "f0B8fw",
"field_title": "人员",
"field_type": "FIELD_TYPE_USER",
"property_user": {
"is_multiple": true,
"is_notified": true
}
},
{
"field_id": "f43PE3",
"field_title": "asfasdasdasa",
"field_type": "FIELD_TYPE_TEXT"
},
{
"field_id": "f53B4X",
"field_title": "日期",
"field_type": "FIELD_TYPE_DATE_TIME",
"property_date_time": {
"format": "yyyy\"年\"m\"月\"d\"日\"",
"auto_fill": false
}
},
{
"field_id": "fHh3jp",
"field_title": "TITLE",
"field_type": "FIELD_TYPE_TEXT"
},
{
"field_id": "fImfIr",
"field_title": "TITLE11111111",
"field_type": "FIELD_TYPE_TEXT"
},
{
"field_id": "fSNPFZ",
"field_title": "文件",
"field_type": "FIELD_TYPE_ATTACHMENT",
"property_attachment": {
"display_mode": "DISPLAY_MODE_GRID"
}
},
{
"field_id": "fW8Thg",
"field_title": "风格",
"field_type": "FIELD_TYPE_TEXT"
},
{
"field_id": "fc5FyT",
"field_title": "单选",
"field_type": "FIELD_TYPE_SINGLE_SELECT",
"property_single_select": {
"is_multiple": false,
"is_quick_add": true,
"options": []
}
},
{
"field_id": "fiWfNd",
"field_title": "数字",
"field_type": "FIELD_TYPE_NUMBER",
"property_number": {
"decimal_places": 1,
"use_separate": true
}
},
{
"field_id": "fl1uff",
"field_title": "图片",
"field_type": "FIELD_TYPE_IMAGE"
}
]
}
添加字段
https://developer.work.weixin.qq.com/document/path/100220#fieldtype
{
"docid": "dc1g39eaMOXvG5KOR6VDeI0UJ6xcFqv2hqoPxy4AiKXS5NiKwibbKcNcAlzKega0-Mb26JGiuUnG-n3X1g1sIEyA",
"sheet_id": "q979lj",
"fields": [
{
"field_title": "风格",
"field_type": "FIELD_TYPE_TEXT"
},
{
"field_title": "发货日期",
"field_type": "FIELD_TYPE_DATE_TIME",
"property_date_time": {
"format": "yyyy\"年\"m\"月\"d\"日\"",
"auto_fill": false
}
}]
}
删除字段
{
"docid": "dc1g39eaMOXvG5KOR6VDeI0UJ6xcFqv2hqoPxy4AiKXS5NiKwibbKcNcAlzKega0-Mb26JGiuUnG-n3X1g1sIEyA",
"sheet_id": "q979lj",
"field_ids": [
"f43PE3"
]
}
字段类型
添加记录
https://developer.work.weixin.qq.com/document/path/100224
- 添加记录
本接口用于在 Smartsheet 中的某个子表里添加一行或多行新记录。单表最多允许有40000行记录。
注意
不能通过添加记录接口给创建时间、最后编辑时间、创建人和最后编辑人四种类型的字段添加记录。
请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/add_records?access_token=ACCESS_TOKEN
请求包体:
{
"docid": "DOCID",
"sheet_id": "123Abc",
"key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
"records": [{
"values": {
"FILED_TITLE": [{
"type": "text",
"text": "文本内容"
}]
}
}]
}
参数说明
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
docid | string | 是 | 文档的docid |
sheet_id | string | 是 | Smartsheet 子表ID |
key_type | string(CellValueKeyType) | 否 | 返回记录中单元格的key类型,默认用标题 |
records | Object | 是 | 需要添加的记录的具体内容组成的 JSON 数组 |
权限说明
- 自建应用需配置到“可调用应用”列表中的应用secret所获取的accesstoken来调用(accesstoken如何获取?)
- 第三方应用需具有“文档”权限
- 代开发自建应用需具有“文档”权限
返回示例
{
"errcode": 0,
"errmsg": "ok",
"records": [
]
}
参数说明
参数 | 类型 | 说明 |
---|---|---|
errcode | int32 | 错误码 |
errmsg | string | 错误码说明 |
records | Object | 由添加成功的记录的具体内容组成的 JSON 数组 |
添加字段
https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/add_records
{
"docid": "dc1g39eaMOXvG5KOR6VDeI0UJ6xcFqv2hqoPxy4AiKXS5NiKwibbKcNcAlzKega0-Mb26JGiuUnG-n3X1g1sIEyA",
"sheet_id": "q979lj",
"key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
"records": [
{
"values": {
"文本": [{
"type": "text",
"text": "文本内容3"
}],
"日期": "1735625722000", // 毫秒级别时间戳
"数字": 1.1,
"单选": [{
"text": "浅红",
"style": 1
}]
}
}]
}
更新记录
https://developer.work.weixin.qq.com/document/path/100226#commonrecord
本接口用于更新 Smartsheet 中的某个子表里的一行或多行记录。
注意
不能通过更新记录接口给创建时间、最后编辑时间、创建人和最后编辑人四种类型的字段更新记录。
请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/update_records?access_token=ACCESS_TOKEN
请求包体:
{
"docid": "DOCID",
"sheet_id": "123Abc",
"key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
"records": [
]
}
参数说明
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
docid | string | 是 | 文档的docid |
sheet_id | string | 是 | Smartsheet 子表ID |
key_type | string(CellValueKeyType) | 否 | 返回记录中单元格的key类型 |
records | Object | 是 | 由需要更新的记录组成的 JSON 数组 |
删除记录
https://developer.work.weixin.qq.com/document/path/99908
本接口用于删除 Smartsheet 的某个子表中的一行或多行记录。
请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/delete_records?access_token=ACCESS_TOKEN
请求包体:
{
"docid": "DOCID",
"sheet_id": "123Abc",
"record_ids": [
"re9IqD",
"rpS0P9"
]
}
参数说明
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
docid | string | 是 | 文档的docid |
sheet_id | string | 是 | Smartsheet 子表ID |
record_ids | string[] | 是 | 要删除的记录 ID |
查询记录
https://developer.work.weixin.qq.com/document/path/99915
https://qyapi.weixin.qq.com/cgi-bin/wedoc/smartsheet/get_records
{
"docid": "dc1g39eaMOXvG5KOR6VDeI0UJ6xcFqv2hqoPxy4AiKXS5NiKwibbKcNcAlzKega0-Mb26JGiuUnG-n3X1g1sIEyA",
"sheet_id": "q979lj",
"record_ids": [],
"key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
"field_titles": [],
"field_ids": [],
"sort": [],
"offset": 0,
"limit": 100
}
元数据
表列表
[root@localhost app]# curl http://xxxxx:8090/api/metalakes/StarRocks/catalogs/StarRocks/schemas/ads_test/tables | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4365 100 4365 0 0 221k 0 --:--:-- --:--:-- --:--:-- 224k
{
"code": 0,
"identifiers": [
{
"namespace": [
"StarRocks",
"StarRocks",
"ads_test"
],
"name": "ads_fail_import_group_vip"
},
{
"namespace": [
"StarRocks",
"StarRocks",
"ads_test"
],
"name": "ads_group"
}
表信息
[root@localhost app]# curl http://xxxxx:8090/api/metalakes/StarRocks/catalogs/StarRocks/schemas/ads_test/tables/ads_fail_import_group_vip | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3806 100 3806 0 0 165k 0 --:--:-- --:--:-- --:--:-- 168k
{
"code": 0,
"table": {
"name": "ads_fail_import_group_vip",
"comment": "导入失败会员表",
"columns": [
{
"name": "comp_id",
"type": "varchar(100)",
"nullable": false,
"autoIncrement": false
},
...
{
"name": "vip_gender_name",
"type": "varchar(50)",
"comment": "会员性别名称",
"nullable": true,
"autoIncrement": false,
"defaultValue": {
"type": "literal",
"dataType": "null",
"value": "NULL"
}
}
博客
企业微信 API 接口调用教程:一步步学习企业微信 API 的使用技巧