获取应用数据接口详解
问题描述
在调用openAPI获取应用数据接口时,会常常遇到body中字段不清楚如何传,比如申请人信息怎么传?查询某个字段时的内容该怎么传?等等
文档作用
会详细说明如何传值。
接口详解
**请求方式:**POST
**请求地址:**https://api.qingflow.com/app/:appkey/apply/filter(公有云版本)
请求地址中:appkey为需要替换的变量,根据实际获取值更新,示例如下:
POST https://api.qingflow.com/app/1fa752c0/apply/filter
其他版本请求地址:
钉钉版本:https://api.ding.qingflow.com/app/:appkey/apply/filter
专有轻流:http(s)://xxx.xx(自有域名)/openApi/app/:appkey/apply/filter
参数说明(路径参数)
| 参数 | 必须 | 说明 |
|---|---|---|
| appKey | 是 | 应用ID,获取方式见下方 |
appkey应用id,点击某应用,即可在链接地址中获取,如下图:也可以在应用基本信息中获得(下图)
请求头(Header)
| 参数 | 必须 | 说明 |
|---|---|---|
| accessToken | 是 | 调用接口凭证。获取方法请查看“文档” |
| userId | 非必填 | 说明:用户的userId,type值为非8的情况下需要传输用户信息,不传不报错但是数据获取为空。 |
accessToken获取方式获取路径:【轻商城】——【插件中心】——【第三方连接】——「openapi」超级管理员accessToken:拥有工作区创建者权限,可以调用除「code登录接口」外所有openAPI接口。可直接在轻流系统中获取,如下:子管理员accessToken:子管理员accessToken拥有对应子管理员的权限,能调用这个子管理员权限内可调用的接口。获取方式为:首先生成关联子管理员权限secret(如下图),再通过接口,由wsid(下文有详解)和secret获取。重置secret会让已获取过的accessToken失效。
请求体(Body)
| 参数 | 必须 | 类型 | 说明 |
|---|---|---|---|
| pageSize | 是 | int | 每页数据条数,注意pageSize最大可填200 |
| pageNum | 是 | int | 请求页码 |
| type | 否 | int | 获取个人待办事项:1;获取已办事项:2;获取我发起的已通过:3;获取我发起的已拒绝:4;获取我发起的草稿:5;获取我发起的待完善:6;获取我发起的流程中:7;获取全部数据:8;(不传默认为type=8)获取抄送事项:12 |
| sorts | 否 | [array] | 排序情况 |
| queId | | int | 字段Id,specialQueId可见文档,具体queId获取见下方 |
| isAscend | [boolean] | 是否升序,true:升序 | |
| queriesRel | 否 | string | 针对字段的查询条件之间逻辑关系,目前支持and、or,默认为and。多条件查询时在queries数组中以多个对象形式存在 |
| queries | 否 | [array] | 针对字段的查询条件 |
| queId | 是 | int | 如果设置了筛选查询条件,此处为必填项,queId获取见下方 |
| searchKey | string | 搜索关键字,搜索为模糊搜索 | |
| searchKeys | [array] | 数组内的字段为或条件搜索,当searchKey不为null的时候此字段会被忽略,搜索为模糊搜索 | |
| minValue | string | 数字模块中,是搜索结果中最小值,日期类型,就是最早日期 | |
| maxValue | string | 数字模块中,是搜索结果中最大值,日期类型,就是最晚日期 | |
| scope | int | 筛选数据范围, 1:全部,2:已填写,3:未填写 | |
| searchOptions | [array] | 单选多选中,搜索答案中包含这些选项的申请,由optionId组成 | |
| searchUserIds | [array] | 成员字段中,搜索答案中包含这些userId的申请 | |
| queryKey | string | 模糊搜索全部字段数据的key值 | |
| applyIds | [array] | 指定申请的applyId |
queIdqueId获取方式方式1、通过调用获取应用表单信息接口获取应用表单信息接口方式2、通过后台开发者工具去获取,打开浏览器按Fn+12 点击network,然后清除数据safari获取方式 点击打开某条数据,然后点击该条数据的applyid,在预览中找到到该字段的queidGoogle获取方式 通过后台开发者工具去获取,打开浏览器按Fn+12,点击network,然后清除数据点击打开某条数据,然后点击该条数据的applyid,在response中找到到该字段的queid方式3、直接发起一条数据,然后在右侧的apply,右击拷贝为curl,导入到postman中
请求体示例
{
"pageSize": 50,
"pageNum": 1,
"type": 1,
"sorts": [
{
"queId": 1,
"isAscend": true
}
],
"queriesRel": "and",
"queries": [
{
"queId": 0,
"searchKey": "ss",
"searchKeys": [
"aa",
"bb"
],
"minValue": "",
"maxValue": "",
"scope": 1,
"searchOptions": [
100
],
"searchUserIds": [
"abc"
]
}
],
"queryKey": "",
"applyIds": [
1
]
}
PS:对于地址字段、富文本字段、定位字段、数据关联字段、部门字段都参考单行文字的传参方式
对于部门字段,参考单行文字的传参方式,需要传部门的名称
对于引用字段,参考单行文字的传参方式,需要传引用数据的ID
对于图片选择,参考多项选择的传参方式
针对不同字段数据的请求体
默认获取全部应用数据
由于是接口属于是分页接口,所以如果是手动请求,需要手动更新pageNum的值,比如由1变为2,表示,请求下一页50条数据。这里需要注意的是pageSize最大可填200。
{
"pageSize": 50,
"pageNum": 1
}
获取某人发起的数据,且流程状态是已通过的
这里需要注意的是Header中userId需要传对应的成员的userId,否则查询出来的数据为空。type=3表示获取我发起的已通过。
{
"pageSize": 50,
"pageNum": 1,
"type": 3
}
获取全部应用数据,且按照申请时间进行升序排序
queId=2是默认代表申请时间,一些系统字段queId都是默认的,具体可以查阅specialQueId可见文档
{
"pageSize": 50,
"pageNum": 1,
"sorts": [
{
"queId": 2,
"isAscend": true
}
]
}
根据数据ID查询指定数据
数据ID获取方式:URL页面获取:打开数据详情页,找到applyid
{
"pageSize": 50,
"pageNum": 1,
"applyIds": [
1
]
}
获取应用数据,获取某个字段未填写的数据
scope==3,代表未填写的状态
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"scope": 3
}
]
}
单行文字字段
获取全部应用数据某个单行文字字段包含值或者等于特定值
注意:这里是模糊搜索,如果应用数据中queId=289084275的数据中有值包含单行文字就会被查询出来,即为模糊搜素。
所以如果想要精确查询,见方式三,即minValue和maxValue都为一样的值。
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"searchKey": "单行文字"
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"searchKeys": [
"单行文字"
]
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"minValue": "单行文字",
"maxValue": "单行文字"
}
]
}
获取全部应用数据某个单行文字字段包含特定值1或特定值2
注意:虽然是或关系,但是搜索也属于是模糊搜索。
{
"pageSize": 50,
"pageNum": 1,
"queriesRel": "or",
"queries": [
{
"queId": 289084275,
"searchKey": "单行文字"
},
{
"queId": 289084275,
"searchKey": "测试"
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"searchKeys": [
"单行文字",
"测试"
]
}
]
}
获取全部应用数据某个单行文字字段等于特定值1或特定值2
这里是精确搜索
{
"pageSize": 50,
"pageNum": 1,
"queriesRel": "or",
"queries": [
{
"queId": 289084275,
"minValue": "单行文字",
"maxValue": "单行文字"
},
{
"queId": 289084275,
"minValue": "单行文字2",
"maxValue": "单行文字2"
}
]
}
数字字段
注意:筛选时,数字字段需要body中加上"queType": 8
获取全部应用数据数字字段等于特定值
注意:数字字段筛选使用minValue和maxValue这两个参数。等于特定值的话,就将minValue和maxValue写为一样的即可。
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084277,
"queType": 8,
"minValue": "1",
"maxValue": "1"
}
]
}
获取全部应用数据数字字段为一段区间值
比如需要筛选数字字段queId=289084277的值,1<=数字字段<=111.
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084277,
"queType": 8,
"minValue": "1",
"maxValue": "111"
}
]
}
日期字段
获取全部应用数据某个日期字段为特定值
注意:minValue和maxValue中需要将日期字段格式补齐才能进行筛选。虽然表单设置日期字段为年月日,但是接口查询需要写为年月日时分秒。筛选等于特定值,即minValue和maxValue等于相同值
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084279,
"minValue": "2024-10-23 00:00:00",
"maxValue": "2024-10-23 00:00:00"
}
]
}
获取全部应用数据某个日期字段为一段区间值
比如需要筛选日期字段queId=289084279的值,"2024-10-23 00:00:00"<=日期字段<="2024-10-24 00:00:00".即使日期字段表单设置为年月日格式,但是查询时需要将格式补齐。
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084279,
"minValue": "2024-10-23 00:00:00",
"maxValue": "2024-10-24 00:00:00"
}
]
}
起止时间
获取全部应用数据某个起止时间等于特定值
注意:searchKey中需要将日期字段的格式补齐。虽然表单设置日期字段为年月日,但是接口查询需要写为年月日时分秒。
精确搜索
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084280,
"searchKey": "2024-10-23 00:00:00~2024-10-31 00:00:00"
}
]
}
获取全部应用数据某个起止时间包含某个时间段的数据
比如筛选起止时间包含时间范围为2024-10-23~2024-10-25.仅仅是包含,如果一条数据的时间范围比如是2024-10-24~2024-10-31,该条数据就不会被筛选出来,因为这只能算是有交集,并不能代表包含。
注意:即使日期字段表单设置为年月日格式,但是查询时需要将格式补齐。
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084280,
"minValue": "2024-10-25 00:00:00",
"maxValue": "2024-10-31 00:00:00"
}
]
}
单选选择/下拉选择
获取全部应用数据某个单项选择/下拉选择值包含A值或者等于特定值
方式一:模糊搜索,单项选择/下拉选择值包含某个值
方式二/方式三:精确搜索,单项选择/下拉选择值等于特定值
关于选择类字段获取对应的选项ID方法:
方法一:调用获取应用表单信息接口获取optId方法二:浏览器开发者工具获取F12打开控制台Safari浏览器Google浏览器
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084283,
"searchKey": "未命名1"
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084283,
"searchOptions":[
105061432
]
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084283,
"minValue": "未命名1",
"maxValue": "未命名1"
}
]
}
多项选择
获取全部应用数据某个多项选择值包含A值
只有模糊搜索
方式一和方式二都是筛选选择了未命名1或者未命名2的数据。
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084285,
"searchKeys": [
"未命名1",
"未命名2"
]
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084285,
"searchOptions": [
105061438,
105061439
]
}
]
}
成员字段
获取全部应用数据某个成员字段包含A值
只有模糊搜索
成员ID获取,可以在工作区通讯录中直接获取,获取调用工作区通讯录接口。
接口获取:获取工作区全部成员
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084298,
"searchUserIds": [
"1692729",
"55556",
"886986"
]
}
]
}