# 如何为应用开通云文档相关资源的权限

云文档相关资源的权限是指应用对各类云文档资源，如文件夹、文档、电子表格、多维表格、知识库等资源的可阅读、可编辑等权限。了解更多，可参考飞书帮助中心[云文档权限概念介绍](https://www.feishu.cn/hc/zh-CN/articles/329948394104-%E4%BA%91%E6%96%87%E6%A1%A3%E6%9D%83%E9%99%90%E6%A6%82%E5%BF%B5%E4%BB%8B%E7%BB%8D)。

一般而言，如果你在调用接口时接口返回 91403 错误码，则表示当前调用身份没有云文档的阅读或编辑等权限。你可参考本文档为调用身份开启云文档的阅读或编辑等权限。

## 应用权限与文档权限

应用权限指企业自建应用或应用商店应用享有调用云文档 API 接口的权限。应用需先[申请 API 权限](https://open.feishu.cn/document/ukTMukTMukTM/uQjN3QjL0YzN04CN2cDN)，确保在接口层面，应用有权限操作云文档资源。申请应用权限后，应用将对 access token（访问凭证）所代表的应用或用户所拥有的云文档资源具有对应权限。

若应用需要操作未获取文档所有者授权的云文档资源，则需要参考本文档，为其开通文档权限。

## 前提条件

- 已在[开发者后台](https://open.feishu.cn/app)创建了一个应用。
- 已为应用申请了调用云文档 API 的对应权限（如“查看云空间中文件元数据”)。详情参考[申请 API 权限](https://open.feishu.cn/document/ukTMukTMukTM/uQjN3QjL0YzN04CN2cDN)。
- 你已是目标云文档资源的所有者、其它协作者或知识库管理员。

## 操作步骤

根据云文档资源不同，为应用授权的操作步骤不同。你需基于要授权的具体场景，采取不同的操作步骤。

### 开通文件夹权限
要为应用开通文件夹的访问权限，参考以下步骤：
1. 访问[开发者后台](https://open.feishu.cn/app)，选择目标应用。
1. 在应用管理页面，点击**添加应用能力**，找到机器人卡片，点击 **+添加**。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/ca6dc6a875f0de5ab6dd5f37dd1c6c16_nQvJbqJSSb.png?height=1376&lazyload=true&maxWidth=728&width=2686)

3. 发布当前应用版本，并确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含文件夹资源的所有者。
4. 在飞书客户端，创建一个新的群组，将应用添加为群机器人。warning
    此处要添加应用作为机器人，而不是添加“自定义机器人”。

<br>
5. 找到目标文件夹，将文件夹分享给刚刚新建的群组，并设置权限。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/2bf60fd081ad1d8cc39e03b5483fc7e2_PK8FD7jA0t.png?height=878&lazyload=true&maxWidth=728&width=1920)

### 开通知识库权限

知识库有三个层面的权限设置影响：企业、单个知识库、单个页面。详情参考[快速了解知识库权限](https://www.feishu.cn/hc/zh-CN/articles/821998241087-%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3%E7%9F%A5%E8%AF%86%E5%BA%93%E6%9D%83%E9%99%90)。

要为应用授权单个知识库的访问权限，参考以下步骤：

- 方式一：添加群为知识库管理员或成员

1. 访问[开发者后台](https://open.feishu.cn/app)，选择目标应用。
  1. 在应用管理页面，点击**添加应用能力**，找到机器人卡片，点击 **+添加**。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/ca6dc6a875f0de5ab6dd5f37dd1c6c16_nQvJbqJSSb.png?height=1376&lazyload=true&maxWidth=728&width=2686)

3. 发布当前应用版本，并确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含文件夹资源的所有者。
	4. 在飞书客户端，创建一个新的群组，将应用添加为群机器人。warning
        此处要添加应用作为机器人，而不是添加“自定义机器人”。

5. 知识库管理员前往「**知识库设置**」-> 「**成员设置**」，在此选择添加的角色：管理员、可编辑的成员或可阅读的成员。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/f2d8f0e7168dc1a7d9e4e7264ff2af51_XFAHwdOfD3.png?height=878&lazyload=true&maxWidth=728&width=1920)

6. 搜索包含机器人的群聊，添加该群为管理员或成员。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/dae728569130e1ca3438e931769e92a2_0S52GbbvjE.png?height=838&lazyload=true&maxWidth=528&width=1135)

<br>
- 方式二：通过 API 接口将应用添加为知识库管理员或成员

1. 获得知识库管理员身份凭证（user_access_token）。
  2. 获取应用 **open_id**（参考[云文档常见问题](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN) **问题 10 如何获取应用 open_id？**）。
  3. 调用[添加为知识空间成员](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-member/create)接口，通过管理员身份（user_access_token）将应用 **open_id** 添加为知识空间成员。通过 `member_role` 参数控制角色类型。

要为应用授权知识库中单页面的访问权限，你可将应用添加为知识库中目标页面节点的协作者。具体步骤如下所示：

- 方式一：直接添加应用为节点云文档的协作者

该方式要求操作者为云文档所有者、拥有文档**管理**权限的协作者或知识库管理员。操作者可通过云文档网页页面右上方「**...**」->「**...更多**」-> 「**添加文档应用**」入口添加。warning
  -  如果多维表格开启了高级权限，你需为应用添加多维表格的 **可管理** 权限，否则仍无法操作多维表格。
  -  在 **添加文档应用** 前，你需确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含节点云文档的所有者。否则你将无法在文档应用窗口搜索到目标应用。
  - 在 **添加文档应用** 前，你需确保目标应用至少开通了任意一个云文档 [API 权限](https://open.feishu.cn/document/ukTMukTMukTM/uYTM5UjL2ETO14iNxkTN/scope-list)。否则你将无法在文档应用窗口搜索到目标应用。

![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=583&width=3278)

<br>
- 方式二：添加包含应用的群组为节点云文档的协作者
   1.  访问[开发者后台](https://open.feishu.cn/app)，选择目标应用。
	1. 在应用管理页面，点击**添加应用能力**，找到机器人卡片，点击 **+添加**。
	2. 发布当前应用版本，并确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含知识库资源的所有者。
	3. 在飞书客户端，创建一个新的群组，将应用添加为群机器人。warning
        此处要添加应用作为机器人，而不是添加“自定义机器人”。

2. 在目标节点，将该节点分享给刚刚新建的群组，并设置权限。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6a32d4b28f31b942e92b7f8dd9bed33c_eCrlCr1vtb.png?height=875&lazyload=true&maxWidth=728&width=1903)

<br>
- 方式三：通过用户身份凭证 (user_access_token) 调用[增加协作者权限](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-member/create)通过应用的 open_id（参考[云文档常见问题](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN)问题 10 “如何获取应用 open_id ”） 给应用授予文档的访问权限。

- 方式四：通过用户身份凭证(user_access_token) 调用[更新云文档权限设置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-public/patch)，将权限设置为“组织内获得链接的人可编辑”。
- 方式五：通过用户身份凭证(user_access_token) 调用[转移所有者](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-member/transfer_owner)将云文档的所有权转移给应用。

### 开通文档、电子表格等其它云文档资源权限

要为应用授权文档、电子表格等其它云文档资源权限，参考以下步骤：

- 方式一：直接添加应用为云文档的协作者

该方式要求操作者为云文档所有者、拥有文档**管理**权限的协作者或知识库管理员。操作者可通过云文档网页页面右上方「**...**」->「**...更多**」-> 「**添加文档应用**」入口添加。warning
  - 如果多维表格开启了高级权限，你需为应用添加多维表格的 **可管理** 权限，否则仍无法操作多维表格。
  -  在 **添加文档应用** 前，你需确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含节点云文档的所有者。否则你将无法在文档应用窗口搜索到目标应用。
  - 在 **添加文档应用** 前，你需确保目标应用至少开通了任意一个云文档 [API 权限](https://open.feishu.cn/document/ukTMukTMukTM/uYTM5UjL2ETO14iNxkTN/scope-list)。否则你将无法在文档应用窗口搜索到目标应用。
   ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=583&width=3278)

<br>
- 方式二：添加包含应用的群组为云文档资源的协作者
   1.  访问[开发者后台](https://open.feishu.cn/app)，选择目标应用。
	1. 在应用管理页面，点击**添加应用能力**，找到机器人卡片，点击 **+添加**。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/ca6dc6a875f0de5ab6dd5f37dd1c6c16_nQvJbqJSSb.png?height=1376&lazyload=true&maxWidth=728&width=2686)

3. 发布当前应用版本，并确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含云文档资源的所有者。
	4. 在飞书客户端，创建一个新的群组，将应用添加为群机器人。warning
        此处要添加应用作为机器人，而不是添加“自定义机器人”。

2. 在目标云文档页面的 **分享** 入口，邀请刚刚新建的群组作为协作者，并设置权限。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/0cde1312714f7e1fc311a9ea19d19ad5_fX3PPxKkbX.png?height=574&lazyload=true&maxWidth=503&width=820)

<br>

- 方式三：通过用户身份凭证 (user_access_token) 调用[增加协作者权限](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-member/create)通过应用的 open_id（参考[云文档常见问题](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN)问题 10 “如何获取应用 open_id ”） 给应用授予文档的访问权限。

- 方式四：通过用户身份凭证(user_access_token) 调用[更新云文档权限设置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-public/patch)，将权限设置为“组织内获得链接的人可编辑”。
- 方式五：通过用户身份凭证(user_access_token) 调用[转移所有者](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-member/transfer_owner)将云文档的所有权转移给应用。