# 获取三方审批任务状态

该接口用于获取三方审批的状态。用户传入查询条件，接口返回满足条件的审批实例的状态。

## 提示

该接口支持多种参数的组合，具体请参考请求体示例：

- 通过 instance_ids 获取指定实例的任务状态
- 通过 user_ids 获取指定用户的任务状态
- 通过 status 获取指定状态的所有任务
- 通过page_token获取下一批数据

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/approval/v4/external_tasks
HTTP Method | GET
接口频率限制 | [1000 次/分钟、50 次/秒](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用**<br>开启任一权限即可 | 查看、创建、更新、删除审批应用相关信息(approval:approval)<br>访问审批应用(approval:approval:readonly)<br>查看、创建、更新、删除三方审批任务相关信息(approval:external_task)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer t-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
page_size | int | 否 | 分页大小<br>**示例值**：100<br>**默认值**：`50`<br>**数据校验规则**：<br>- 最大值：`500`
page_token | string | 否 | 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果<br>**示例值**：nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
approval_codes | string\[\] | 否 | 审批定义 Code，用于指定只获取这些定义下的数据<br>**示例值**：["E78F1022-A166-447C-8320-E151DA90D70F"]<br>**数据校验规则**：<br>- 最大长度：`20`
instance_ids | string\[\] | 否 | 审批实例 ID, 用于指定只获取这些实例下的数据，最多支持 20 个<br>**示例值**：["oa_159160304"]
user_ids | string\[\] | 否 | 审批人 user_id，用于指定只获取这些用户的数据<br>**示例值**：["112321"]
status | string | 否 | 审批任务状态，用于指定获取该状态下的数据<br>**示例值**："PENDING"<br>**可选值有**：<br>- PENDING：审批中<br>- APPROVED：审批流程结束，结果为同意<br>- REJECTED：审批流程结束，结果为拒绝<br>- TRANSFERRED：任务转交<br>- DONE：任务通过但审批人未操作；审批人看不到这个任务, 若想要看到, 可以通过抄送该人.

### 请求体示例
```json
// 1. 通过 instance_ids 获取指定实例的任务状态时，instance_ids为必须字段
{
    "instance_ids": ["oa_159160304"]
}

// 2. 通过 user_ids 获取指定用户的任务状态时，approval_codes、user_ids、status为必须字段
{
    "approval_codes": ["B7B65FFE-C2GC-452F-9F0F-9AA8352363D6"],
    "user_ids": ["112321"],
    "status": "PENDING"
}

// 3. 通过 status 获取指定状态的所有任务时，approval_codes、status为必须字段
{
    "approval_codes": [
        "E78F1022-A166-447C-8320-E151DA90D70F"
    ],
    "status": "PENDING"
}

// 4. 通过 page_token获取下一批数据时，page_token为必须字段
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
data | external_task_list\[\] | 返回数据
instance_id | string | 审批实例 ID
approval_id | string | 审批的id
approval_code | string | 审批对应的 approval_code
status | string | 审批实例当前的状态<br>**可选值有**：<br>- PENDING：审批中<br>- APPROVED：审批流程结束，结果为同意<br>- REJECTED：审批流程结束，结果为拒绝<br>- CANCELED：审批发起人撤回<br>- DELETED：审批被删除<br>- HIDDEN：状态隐藏(不显示状态)
update_time | string | 审批实例最后更新时间，单位 毫秒
tasks | external_task_item\[\] | 审批实例下的审批任务
id | string | 审批任务 ID
status | string | 审批任务状态<br>**可选值有**：<br>- PENDING：审批中<br>- APPROVED：审批流程结束，结果为同意<br>- REJECTED：审批流程结束，结果为拒绝<br>- TRANSFERRED：任务转交<br>- DONE：任务通过但审批人未操作；审批人看不到这个任务, 若想要看到, 可以通过抄送该人.
update_time | string | 审批任务最后更新时间，单位 毫秒
page_token | string | 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token
has_more | boolean | 是否还有更多项

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "data": [
            {
                "instance_id": "29075",
                "approval_id": "fwwweffff33111133xxx",
                "approval_code": "B7B65FFE-C2GC-452F-9F0F-9AA8352363D6",
                "status": "PENDING",
                "update_time": "1621863215000",
                "tasks": [
                    {
                        "id": "310",
                        "status": "PENDING",
                        "update_time": "1621863215000"
                    }
                ]
            }
        ],
        "page_token": "nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU",
        "has_more": false
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 1390001 | param is invalid | 参数错误

