全部產品
Search
文件中心

Data Transmission Service:實踐手冊:將飛書接入到DTS RAGFlow知識庫

更新時間:Aug 09, 2025

本文為您介紹如何將飛書的資料轉送到Data Transmission Service的RAGFlow知識庫。

前提條件

已在DTS建立RAGFlow知識庫設定IP白名單

背景資訊

支援的資料類型

DTS RAGFlow支援接入飛書中的雲文檔、試算表、多維表格、知識庫。

訪問飛書的方式

當前支援使用應用身份訪問憑證(tenant_access_token)和使用者訪問憑證(user_access_token),訪問飛書的資料。

方式

權限類別型

優點

缺點

tenant_access_token(推薦)

應用身份

  • 支援斷點續傳。

  • 對於單個檔案夾或知識庫的傳輸,只需進行一次配置即可。

授權時的操作較多,需要額外配置雲空間和知識庫的存取權限。

user_access_token

使用者身份

授權時的操作較少。具有所有檔案夾的存取權限,無需額外配置雲空間和知識庫的存取權限。

  • 每次運行KBSync程式時,都需要擷取(或重新擷取)飛書的授權碼。

  • 擷取的飛書授權碼有到期時間限制,到期後需要重新擷取。

準備工作

  1. 登入飛書開放平台,並進入開發人員後台

  2. 建立應用

    您可以單擊建立企業自建應用,配置名稱應用描述等相關資訊,再單擊建立

  3. 單擊進入該應用的卡片,進入應用編輯頁面。

    預設進入基礎資訊 > 憑證與基礎資訊面頁。

  4. 憑證與基礎資訊頁面的應用憑證地區,記錄App IDApp Secret

操作步驟

說明

關于飛書的詳細操作,請參見飛書官方文檔(協助中心開發文檔)。

步驟一:配置存取權限

使用tenant_access_token

  1. 登入飛書開放平台,並進入開發人員後台

  2. 單擊準備工作中建立的應用。

  3. 添加機器人並發布應用。

    1. 在左側導覽列,選擇應用能力 > 添加應用能力

    2. 按能力添加頁簽,單擊機器人在卡片中的添加

    3. 在頁面上方,單擊建立版本

      說明

      您也可以在左側導覽列,選擇應用發布 > 版本管理與發布,再單擊建立版本

    4. 版本詳情頁面,填入應用版本號碼更新說明

      說明

      移動端的預設能力案頭端的預設能力保持預設的機器人即可。

    5. 單擊儲存

    6. 在彈出的對話方塊,單擊確認發布

  4. 配置API許可權。

    1. 在左側導覽列,選擇開發配置 > 許可權管理

    2. 單擊大量匯入/匯出許可權

    3. 匯入頁簽的JSON文字框,給應用配置如下使用者身份許可權。

      {
        "scopes": {
          "tenant": [
            "docs:document:export",
            "drive:drive",
            "wiki:wiki"
          ],
          "user": []
        }
      }
    4. 單擊下一步,確認新增許可權

    5. 單擊申請開通

  5. 登入飛書用戶端,建立一個新的群組,並將準備工作中建立的應用添加為群機器人

  6. 配置雲空間和知識庫的存取權限。

    配置雲空間存取權限

    1. 進入目標雲空間的檔案夾。

    2. 在頁面右側,單擊分享

    3. 邀請共同作業者填入步驟5中建立的群組。

      預設的可閱讀許可權即可。

    4. 單擊發送

    配置知識庫存取權限

    1. 進入全部知識庫頁面。

    2. 將滑鼠游標移動到目標知識庫上,然後單擊該知識庫出現的知識庫設定

    3. 單擊成員設定頁簽,並在角色與許可權地區的管理員頁簽,單擊添加管理員

    4. 在彈出的對話方塊,添加步驟5中建立的群組,並單擊下一步

    5. 單擊發送

使用user_access_token

  1. 登入飛書開放平台,並進入開發人員後台

  2. 單擊準備工作中建立的應用。

  3. 配置API許可權。

    1. 在左側導覽列,選擇開發配置 > 許可權管理

    2. 單擊大量匯入/匯出許可權

    3. 準備工作中建立的應用,配置相應的使用者身份許可權。

      {
        "scopes": {
          "tenant": [],
          "user": [
            "offline_access",
            "docs:document:export",
            "drive:drive",
            "wiki:wiki"
          ]
        }
    4. 單擊下一步,確認新增許可權

    5. 單擊申請開通

  4. 配置重新導向IP白名單。

    1. 在左側導覽列,選擇開發配置 > 安全設定

    2. 重新導向URL文字框,填入https://www.aliyun.com

    3. 單擊文字框右側的添加

    4. 開啟重新整理user_access_token開關。

      說明

      若沒有此開關,則預設處於開啟狀態。

  5. 擷取授權碼。

    1. 擷取飛書的授權頁面的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
    2. 在瀏覽器中開啟該授權頁面。

    3. 單擊授權

    4. 在重新導向URL中擷取授權碼(code)。

      說明

      授權碼不包含code=&&符號之後的資訊。

步驟二:擷取飛書雲文檔所屬檔案夾的Token和知識庫的ID

  1. 登入飛書用戶端。

  2. 擷取飛書雲文檔所屬檔案夾的Token。

    1. 進入目標檔案夾中。

    2. 在頁面上方的地址欄,擷取該檔案夾對應的URL。

    3. 在URL中擷取Token(folder/之後的資訊)。

      說明

      Token不包含?及其之後的資訊。

  3. 擷取知識庫的ID。

    1. 進入全部知識庫頁面。

    2. 將滑鼠游標移動到目標知識庫上,然後單擊該知識庫出現的知識庫設定

    3. 在頁面上方的地址欄,擷取目標知識庫的URL。

    4. 在URL中擷取知識庫的ID(settings/之後的資訊)。

      說明

      知識庫的ID為純數字,不包含#及其之後的資訊。

步驟三:運行KBSync程式

  1. 擷取KBSync檔案。

    說明

    您可以添加DingTalk群(群號:79690034672),聯絡技術支援人員以擷取KBSync檔案。

  2. 準備KBSync程式的運行環境。

    說明

    運行KBSync程式需要為Linux環境,並且可以訪問飛書開放平台和RAGFlow。

  3. 準備設定檔config

    1. 建立名為config的Linux系統檔案。

    2. 將以下代碼複製到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
    3. 替換config檔案中的參數。

      重要
      • 無需配置的參數,將其取值設定為空白值即可。

      • 若參數feishuCloudSpaceDirTokenfeishuWikiSpaceId同時傳參,則僅傳輸飛書雲文檔及其所屬的檔案夾(僅feishuCloudSpaceDirToken參數生效)。

      • 參數blackList的優先順序高於參數whiteList

      參數

      是否必填

      說明

      擷取方式

      whiteList

      需要傳輸(白名單)和無需傳輸(黑名單)的路徑,包含飛書雲文檔中的檔案夾路徑和知識庫中文檔所在的路徑。

      說明

      支援Regex,多個路徑需使用空格分隔。

      自行在飛書用戶端中擷取。

      blackList

      sinkType

      目標端的類型。

      取值請保持RagFlow

      sourceType

      源端的類型。

      取值請保持Feishu

      ragflowUrl

      RAGFlow的地址(API伺服器)。

      擷取RAGFlow知識庫的API服務地址

      ragflowApiKey

      RAGFlow知識庫的API Key。

      擷取RAGFlow知識庫的API Key

      ragflowDatasetId

      RAGFlow知識庫的ID。

      擷取RAGFlow知識庫的ID

      feishuAppId

      飛書中應用的ID(App ID)。

      擷取App ID和App Secret

      feishuAppSecret

      飛書中應用的密碼(App Secret)。

      feishuUserAccessCode

      說明

      僅當使用user_access_token方式訪問飛書的資料時,需要傳參。

      飛書的授權碼。

      擷取授權碼

      feishuCloudSpaceDirToken

      說明

      僅需為其中一個參數傳參。

      飛書雲文檔所屬檔案夾的Token。

      擷取飛書雲文檔所屬檔案夾的Token和知識庫的ID

      feishuWikiSpaceId

      飛書知識庫的ID。

  4. KBSync檔案和設定檔config,放在Linux環境中的同一目錄中。

  5. 在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服務地址

  1. 登入RAGFlow頁面

  2. 在左側導覽列,單擊API

  3. 擷取API伺服器

擷取RAGFlow知識庫的API Key

  1. 登入RAGFlow頁面

  2. 在左側導覽列,單擊API

  3. RAGFlow API右側,單擊API KEY

  4. 在彈出的API KEY對話方塊,單擊建立新密鑰

  5. 單擊image,記錄Token。

擷取RAGFlow知識庫的ID

  1. 登入RAGFlow頁面

  2. 知識庫頁面,單擊目標知識庫。

  3. 在當前頁面的URL中,記錄知識庫的ID。

    說明

    id=之後的資訊即為知識庫的ID。