本文为您介绍如何将飞书的数据传输到数据传输服务DTS(Data Transmission Service)的RAGFlow知识库。
前提条件
已在DTS创建RAGFlow知识库并设置IP白名单。
背景信息
支持的数据类型
DTS RAGFlow支持接入飞书中的云文档、电子表格、多维表格、知识库。
访问飞书的方式
当前支持使用应用身份访问凭证(tenant_access_token)和用户访问凭证(user_access_token),访问飞书的数据。
方式 | 权限类型 | 优点 | 缺点 |
tenant_access_token(推荐) | 应用身份 |
| 授权时的操作较多,需要额外配置云空间和知识库的访问权限。 |
user_access_token | 用户身份 | 授权时的操作较少。具有所有文件夹的访问权限,无需额外配置云空间和知识库的访问权限。 |
|
准备工作
操作步骤
步骤一:配置访问权限
使用tenant_access_token
登录飞书开放平台,并进入开发者后台。
单击准备工作中创建的应用。
添加机器人并发布应用。
在左侧导航栏,选择
。在按能力添加页签,单击机器人在卡片中的添加。
在页面上方,单击创建版本。
说明您也可以在左侧导航栏,选择
,再单击创建版本。在版本详情页面,填入应用版本号、更新说明。
说明移动端的默认能力和桌面端的默认能力保持默认的机器人即可。
单击保存。
在弹出的对话框,单击确认发布。
配置API权限。
在左侧导航栏,选择
。单击批量导入/导出权限。
在导入页签的JSON文本框,给应用配置如下用户身份权限。
{ "scopes": { "tenant": [ "docs:document:export", "drive:drive", "wiki:wiki" ], "user": [] } }
单击下一步,确认新增权限。
单击申请开通。
登录飞书客户端,创建一个新的群组,并将准备工作中创建的应用添加为群机器人。
配置云空间和知识库的访问权限。
配置云空间访问权限
进入目标云空间的文件夹。
在页面右侧,单击分享。
邀请协作者填入步骤5中创建的群组。
默认的可阅读权限即可。
单击发送。
配置知识库访问权限
进入全部知识库页面。
将鼠标光标移动到目标知识库上,然后单击该知识库出现的知识库设置。
单击成员设置页签,并在角色与权限区域的管理员页签,单击添加管理员。
在弹出的对话框,添加步骤5中创建的群组,并单击下一步。
单击发送。
使用user_access_token
登录飞书开放平台,并进入开发者后台。
单击准备工作中创建的应用。
配置API权限。
在左侧导航栏,选择
。单击批量导入/导出权限。
给准备工作中创建的应用,配置相应的用户身份权限。
{ "scopes": { "tenant": [], "user": [ "offline_access", "docs:document:export", "drive:drive", "wiki:wiki" ] }
单击下一步,确认新增权限。
单击申请开通。
配置重定向IP白名单。
在左侧导航栏,选择
。在重定向URL文本框,填入
https://www.aliyun.com
。单击文本框右侧的添加。
打开刷新user_access_token开关。
说明若没有此开关,则默认处于开启状态。
获取授权码。
获取飞书的授权页面的URL。
说明需将下述URL中的
YOUR_FEISHU_CLIENT_ID
,替换为准备工作记录的App ID。https://accounts.feishu.cn/open-apis/authen/v1/authorize?client_id=YOUR_FEISHU_CLIENT_ID&redirect_uri=https://www.aliyun.com&scope=drive:drive offline_access docs:document:export wiki:wiki
在浏览器中打开该授权页面。
单击授权。
在重定向URL中获取授权码(
code
)。说明授权码不包含code=、&及&符号之后的信息。
步骤二:获取飞书云文档所属文件夹的Token和知识库的ID
登录飞书客户端。
获取飞书云文档所属文件夹的Token。
进入目标文件夹中。
在页面上方的地址栏,获取该文件夹对应的URL。
在URL中获取Token(
folder/
之后的信息)。说明Token不包含?及其之后的信息。
获取知识库的ID。
进入全部知识库页面。
将鼠标光标移动到目标知识库上,然后单击该知识库出现的知识库设置。
在页面上方的地址栏,获取目标知识库的URL。
在URL中获取知识库的ID(
settings/
之后的信息)。说明知识库的ID为纯数字,不包含#及其之后的信息。
步骤三:运行KBSync程序
获取KBSync文件。
说明您可以添加钉钉群(群号:79690034672),联系技术支持人员以获取KBSync文件。
准备KBSync程序的运行环境。
说明运行KBSync程序需要为Linux环境,并且可以访问飞书开放平台和RAGFlow。
准备配置文件config。
创建名为config的Linux系统文件。
将以下代码复制到config文件中。
whiteList= blackList= sinkType=RagFlow sourceType=FeiShu ragflowUrl=http://XX.XX.XX.XX ragflowApiKey=Bearer RAGFlow-BmND******MDI0Mm ragflowDatasetId=928d061******2ac120006 feishuAppId=cli_a8a******d00d feishuAppSecret=pMp73Si******UDrWXBSOa feishuUserAccessCode=bGzpx6******B9KFCdzdCDHG feishuCloudSpaceDirToken=ESJm*******CRdn002cii3bnAc feishuWikiSpaceId=7504968******8674
替换config文件中的参数。
重要无需配置的参数,将其取值设置为空值即可。
若参数
feishuCloudSpaceDirToken
和feishuWikiSpaceId
同时传参,则仅传输飞书云文档及其所属的文件夹(仅feishuCloudSpaceDirToken
参数生效)。参数
blackList
的优先级高于参数whiteList
。
参数
是否必填
说明
获取方式
whiteList
否
需要传输(白名单)和无需传输(黑名单)的路径,包含飞书云文档中的文件夹路径和知识库中文档所在的路径。
说明支持正则表达式,多个路径需使用空格分隔。
自行在飞书客户端中获取。
blackList
否
sinkType
是
目标端的类型。
取值请保持
RagFlow
。sourceType
是
源端的类型。
取值请保持
Feishu
。ragflowUrl
是
RAGFlow的地址(API服务器)。
ragflowApiKey
是
RAGFlow知识库的API Key。
ragflowDatasetId
是
RAGFlow知识库的ID。
feishuAppId
是
飞书中应用的ID(App ID)。
feishuAppSecret
是
飞书中应用的密码(App Secret)。
feishuUserAccessCode
否
说明仅当使用user_access_token方式访问飞书的数据时,需要传参。
飞书的授权码。
feishuCloudSpaceDirToken
否
说明仅需为其中一个参数传参。
飞书云文档所属文件夹的Token。
feishuWikiSpaceId
飞书知识库的ID。
将KBSync文件和配置文件config,放在Linux环境中的同一目录中。
在Linux环境中执行
./KBSync --config config
命令,运行KBSync程序。若运行结果如下所示,则表示KBSync程序正常运行。
./KBSync --config config INFO config whiteList=, blackList= INFO config ragflowUrl=http://XX.XX.XX.XX/, ragflowApiKey=Bearer RAGFlow-BmND******MDI0Mm INFO config ragflowDatasetId=928d061******2ac120006 INFO config feishuAppId=cli_a8a******d00d, feishuAppSecret=pMp73Si******UDrWXBSOa INFO Response from https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal: 200, headers: {'Server': 'Tengine', 'Content-Type': 'application/json', 'Content-Length': '102', 'Connection': 'keep-alive', 'Date': 'Tue, 08 Jul 2025 02:49:01 GMT', 'Request-Id': '25bf****-d386-4a86-****-f440f070****', 'Tt_st****': '1', 'X-Lgw-Dst-Svc': 'jbpiSR****OiA0J3d****-Oz0xugYAH9otZIFg4x****', 'X-Request-Id': '25bf****-d386-4a86-b9f4-f440f070****', 'X-Tt-Logid': '202507081049012933B870245850D****', 'server-timing': 'inner; dur=73, cdn-cache;desc=MISS,edge;dur=0,origin;dur=129', 'x-tt-trace-host': '****', 'x-tt-trace-tag': '****', 'x-tt-trace-id': '00-****', 'X-Timestamp': '175194****.952', 'Via': 'cache8.cn6540[129,0]', 'Timing-Allow-Origin': '*', 'EagleId': '6ae3651c1751942941849****'}, body: b'{"code":0,"expire":4340,"msg":"ok","tenant_access_token":"t-g10478a*******CSC3YVY"}' INFO set feishu tenant access token expires in: 4340
附录
获取RAGFlow知识库的API服务地址
在左侧导航栏,单击API。
获取API服务器。
获取RAGFlow知识库的API Key
在左侧导航栏,单击API。
在RAGFlow API右侧,单击API KEY。
在弹出的API KEY对话框,单击创建新密钥。
单击
,记录Token。
获取RAGFlow知识库的ID
在知识库页面,单击目标知识库。
在当前页面的URL中,记录知识库的ID。
说明id=
之后的信息即为知识库的ID。