# 知识库常见问题

## 1. 如何调用接口获取知识库文档内容 / 如何调用接口操作知识库文档？

要获取知识库中云文档的内容/调用接口操作知识库文档，你需先通过知识库相关接口获取该云文档资源的实际 token，再调用云文档资源相关获取接口。具体步骤如下所示：<br>1. 在 URL 地址栏，获取知识库中云文档挂载的节点标识 `node_token`。如下图，该文档挂载的节点 token 为 `EpMmw5WZQi7tYRk73gBc7Dabcef`。<br>你也可通过[获取知识空间列表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/list)获取知识空间的标识 `space_id`，再通过[获取知识空间子节点列表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/list)获取云文档挂载的节点 `node_token`。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/9a4195d235cb581c5a644278c872a73e_kDDonAPndG.png?height=935&lazyload=true&maxWidth=500&width=1573)<br>1. 通过[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口，获取该节点下挂载的云资源的 **obj_token**。此时，该 **obj_token** 即为云文档资源的实际 token。<br>1. 根据云文档类型，使用[文档](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-overview)、[电子表格](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)、[多维表格](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview)等接口获取内容：<br>1. 如果该云文档类型为文档，你可调用[获取文档纯文本内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document/raw_content)或[获取文档所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list)获取文档内容<br>1. 如果该云文档类型为电子表格，你可调用[读取多个范围](https://open.feishu.cn/document/ukTMukTMukTM/ukTMzUjL5EzM14SOxMTN)等接口获取电子表格中的数据<br>1. 如果该云文档类型为多维表格，你可调用[查询记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/search)等接口获取多维表格中的记录数据<br>**说明**：<br>知识库中的云文档的特殊之处在于，云文档 URL 地址中的 token 为知识库的节点标识（node_token），而不是实际云文档资源的唯一标识。例如，在 URL `https://sample.feishu.cn/wiki/EpMmw5WZQi7tYRk73gBc7Dabcef` 中，`EpMmw5WZQi7tYRk73gBc7Dabcef` 为知识库的节点 token，而不是[文档](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-overview)的唯一标识 `document_id`。
---

## 2. 如何给应用授权访问知识库文档资源？

知识库 API 中，除了 [创建知识库](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/create) 和[搜索Wiki](https://open.feishu.cn/document/ukTMukTMukTM/uEzN0YjLxcDN24SM3QjN/search_wiki)以外，都支持使用 **tenant_access_token** 进行调用。<br>应用在访问知识库之前需要获得知识库管理员的授权，或者某个节点的访问权限。要为应用授权整个知识库的访问权限，参考以下步骤：<br>- 方式一：添加群为知识库管理员或成员<br>1. 访问[开发者后台](https://open.feishu.cn/app)，选择目标应用。<br>1. 在应用管理页面，点击**添加应用能力**，找到机器人卡片，点击 **+添加**。<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/ca6dc6a875f0de5ab6dd5f37dd1c6c16_nQvJbqJSSb.png?height=1376&lazyload=true&maxWidth=728&width=2686)<br>3. 发布当前应用版本，并确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含文件夹资源的所有者。<br>4. 在飞书客户端，创建一个新的群组，将应用添加为群机器人。warning<br>**注意**<br>此处要添加应用作为机器人，而不是添加“自定义机器人”。<br>5. 知识库管理员前往「**知识库设置**」-> 「**成员设置**」，在此选择添加的角色：管理员、可编辑的成员或可阅读的成员。<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/f2d8f0e7168dc1a7d9e4e7264ff2af51_XFAHwdOfD3.png?height=878&lazyload=true&maxWidth=728&width=1920)<br>6. 搜索包含机器人的群聊，添加该群为管理员或成员。<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/dae728569130e1ca3438e931769e92a2_0S52GbbvjE.png?height=838&lazyload=true&maxWidth=528&width=1135)<br>- 方式二：通过 API 接口将应用添加为知识库管理员或成员<br>1. 获得知识库管理员身份凭证（user_access_token）。<br>2. 获取应用 **open_id**（参考[云文档常见问题](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN) **问题 10 如何获取应用 open_id？**）。<br>3. 调用[添加为知识空间成员](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-member/create)接口，通过管理员身份（user_access_token）将应用 **open_id** 添加为知识空间成员。通过 `member_role` 参数控制角色类型。<br>要为应用授权知识库中部分内容的访问权限，你可将应用添加为知识库中目标节点云文档的协作者，应用将拥有该节点下所有云文档的协作权限。具体步骤如下所示：<br>- 方式一：直接添加应用为节点云文档的协作者<br>该方式要求操作者为云文档所有者、拥有文档**管理**权限的协作者或知识库管理员。操作者可通过云文档网页页面右上方「**...**」->「**...更多**」-> 「**添加文档应用**」入口添加。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=583&width=3278)<br>- 方式二：添加包含应用的群组为节点云文档的协作者<br>1.  访问[开发者后台](https://open.feishu.cn/app)，选择目标应用。<br>1. 在应用管理页面，点击**添加应用能力**，找到机器人卡片，点击 **+添加**。<br>2. 发布当前应用版本，并确保发布版本的[可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)包含知识库资源的所有者。<br>3. 在飞书客户端，创建一个新的群组，将应用添加为群机器人。warning<br>**注意**<br>此处要添加应用作为机器人，而不是添加“自定义机器人”。<br>2. 在目标节点，将该节点分享给刚刚新建的群组，并设置权限。<br>![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 ”） 给应用授予文档的访问权限。<br>- 方式四：通过用户身份凭证(user_access_token) 调用[更新云文档权限设置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-public/patch)，将权限设置为“组织内获得链接的人可编辑”。<br>- 方式五：通过用户身份凭证(user_access_token) 调用[转移所有者](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-member/transfer_owner)将云文档的所有权转移给应用。
---

## 3. 如何将应用添加为知识库管理员（成员）？

添加应用为知识库管理员（成员）当前有两种方式：<br>- 通过添加群为知识库管理员（成员）方式（**较容易**）<br>1. 在飞书客户端中创建一个群聊，并将应用添加至群聊中。<br>2. 知识库管理员前往「**知识库设置**」-> 「**成员设置**」->「**添加管理员**」中。<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/f2d8f0e7168dc1a7d9e4e7264ff2af51_XFAHwdOfD3.png?height=878&lazyload=true&maxWidth=483&width=1920)<br>3. 搜索包含机器人的群聊，添加该群为管理员。<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/dae728569130e1ca3438e931769e92a2_0S52GbbvjE.png?height=838&lazyload=true&maxWidth=483&width=1135)<br>- 通过 API 接口方式(**较繁琐**)<br>- 参考本页 **问题2 中将应用添加知识空间成员的方式**
---

## 4. 如何迁移云空间中的文档到知识库？

1. 确定当前使用访问凭证是 **user_access_token** 还是 **tenant_access_token**。<br>2. 确认当前身份是否是迁移文档的所有者。<br>3. 确认当前身份是否拥有知识库迁移目的地节点的权限。参考本页 **问题2**。<br>4. 调用 [添加已有云文档至知识库<br>](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/move_docs_to_wiki)接口进行迁移。<br>- 此接口为异步接口。若移动已完成（或节点已在Wiki中），则直接返回结果（Wiki token）。<br>- 若尚未完成，则返回task id。请使用[获取任务结果](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/task/get)接口进行查询。
---

## 5. 如何将本地文件导入到知识库？

1. 先将本地文件通过[导入流程](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/import_task/import-user-guide)导入到云空间。<br>2. 再通过本页**问题4 如何迁移云空间中的文档到知识库** 将导入后的文档迁移到知识库中。
---

## 6. 如何导出知识库中文档？

1. 通过调用 [获取节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node) 接口，可以从返回值中获取到 `obj_type` 和 `obj_token`。<br>2. 再通过[导出流程](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/export_task/export-user-guide)将`obj_token`对应的文档下载到本地。
---

## 7. 如何查看谁是当前知识库的管理员？

你可前往飞书帮助中心[知识库管理员常见问题](https://www.feishu.cn/hc/zh-CN/articles/573667449126-%E7%9F%A5%E8%AF%86%E5%BA%93%E7%AE%A1%E7%90%86%E5%91%98%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98#tabs0|lineguid-Mqjr1)了解。
---

