# 如何为应用申请所需权限？

## 步骤一：明确需要申请的权限

当你在调用接口时，出现了`99991672`报错时，飞书开放平台将通过返回结果的`error.permission_violations` 字段告知具体所需申请的权限。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/67f09d35248d712c9794985e24fbdde6_d6sQtJNM9P.png?height=465&lazyload=true&maxWidth=600&width=1671)

以如下报错为例，你的应用需要申请`contact:user.id:readonly`权限，才能调用此接口。

```
{
  "code": 99991672,
  "msg": "Access denied. One of the following scopes is required: [contact:user.id:readonly]",
  "error": {
    "message": "Refer to the documentation to fix the error: https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-fix-the-99991672-error",
    "log_id": "202307211618216F3E9EB64DC7E1234",
    "permission_violations": [
      {
        "type": "action_scope_required",
        "subject": "contact:user.id:readonly"
      }
    ],
    "helps": [
      {
        "url": "https://open.feishu.cn/app/cli_a41bc75349bcxxxx/auth?q=contact:user.id:readonly&op_from=openapi",
        "description": "Learn more about scopes and how to add them: [contact:user.id:readonly]"
      }
    ]
  }
}
```

## 步骤二：访问需要申请权限的应用

### 方式一：通过返回结果提供的 URL 访问应用

通过返回结果的`error.helps.url`跳转至未申请权限的应用管理页面。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/5bcd3fa7807b6497013dccd78255c768_whFQmDnlLS.png?height=684&lazyload=true&maxWidth=600&width=2216)

### 方式二：通过开发者后台选择应用
在[飞书开放平台开发者后台](https://open.feishu.cn/app)中选择需要申请权限的应用，点击进入应用管理页面。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/323be02ea8a3fd94d21e68daa916d95d_ZsITRJcRkR.png?height=1286&lazyload=true&maxWidth=600&width=2882)

## 步骤三：申请权限

在应用的 **开发配置** > **权限管理** 页面，找到 **权限配置** 区域，选择权限并点击 **批量开通**。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/b15c4df9daf4c899044e597f577b8644_ID6fNSsPP2.png?height=842&lazyload=true&maxWidth=600&width=2870)
**注意事项**：有些接口只需要开通多个权限中的任一权限即可调用（具体所需权限可参考各 API 文档，例如[发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)），按照**最小权限原则**（仅申请开发应用所必需的最小权限集合）申请所需权限，可以帮助管理员快速了解你所申请的权限和场景，加快审批节奏。

### 免审核测试说明

在应用的测试联调阶段，你可以通过以下方式免审核 API 权限进行测试。详细的操作步骤参见[申请 API 权限](https://open.feishu.cn/document/ukTMukTMukTM/uQjN3QjL0YzN04CN2cDN)。

- **企业自建应用**

根据不同的权限以及访问凭证（Token），开放平台提供了多种免审核测试链路。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/c4bd539079b6e3f42f781bb05f9dc8f3_H8tWeMgtLx.png?height=540&lazyload=true&maxWidth=600&width=3200)

- **商店应用**

需要为应用创建测试企业、设置测试版本，当应用状态为 **测试中** 时，即可免审核测试。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/e14290f7247ea8f9385b5f9dabb7a5df_u3210rOKln.png?height=396&lazyload=true&maxWidth=600&width=2224)

## 步骤四：创建版本并申请发布
使用测试企业调试 API 的场景中，开通的权限不会生效于应用的正式版本。因此在结束测试联调后，需要返回正式版本，重新开通相同的权限，再创建版本。

### 企业自建应用

1. 确保测试联调阶段申请的权限符合业务预期后，前往 **应用发布** > **版本管理与发布** 页面，点击 **创建版本**。

2. 在 **版本详情** 页面，根据需要配置版本详情，并在页面底部点击 **保存**。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/7073793a3a9261b14f28fe3ed9a853b0_CL2eNhnXYx.png?height=1428&lazyload=true&maxWidth=600&width=2330)

3. 在弹出的对话框中，点击 **申请线上发布**。

4. 等待企业管理员通过审核。

应用提交发布后，需要等待所在企业应用管理员通过审核后才能发布，你可以联系对应管理员为你通过审核。审核通过后，便可以再次尝试调用 OpenAPI。应用审核通过截图如下：

![DqcQTzZt000025@2x.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/75f27a242ac259b629b7671ad28b5c9d_NjoK6UnlEL.png?height=400&lazyload=true&maxWidth=400&width=1146)

### 商店应用

确保测试联调阶段申请的权限符合业务预期后，前往 **应用发布** > **版本管理与发布** 页面，发布应用。商店应用的正式发布分为定向上架、全量上架、非公开上架，你需要根据业务实际情况选择发布，详细介绍参见[发布商店应用](https://open.feishu.cn/document/uMzNwEjLzcDMx4yM3ATM/uYjMyUjL2IjM14iNyITN)。

