跳至主要内容

cwd:// 下載動作

當訊息中 ATTACHMENT 的 defaultAction / downloadAction 使用 cwd://<相對路徑> 形式的 URI 時,SDK 會攔截 cwd://,改打 <botProviderEndpoint>/cwd/download 取回檔案並觸發瀏覽器下載,而不是用 window.openwindow.open 無法開啟 cwd://)。

常見於 sandbox / code-server 類 bot:Agent 在工作目錄產生檔案後,用 cwd:// 連結讓使用者下載。

cwd:// 下載動作

當 ATTACHMENT 的 defaultAction / downloadAction 使用 cwd://<相對路徑> 的 URI 時,SDK 不會用 window.open,而是改打 <botProviderEndpoint>/cwd/download 取回檔案並觸發瀏覽器下載。

  • 附件會顯示下載圖示 —— 證明 cwd:// 的 downloadAction(type: 'uri')就足以顯示下載按鈕,不再需要 EMIT download_file。
  • 點卡片或下載圖示時,SDK 會送出 GET <base>/cwd/download?custom_channel_id=...&relative_path=...(而非 window.open)。
本範例為預覽模式(botProviderEndpoint: "skip"),用來展示附件的下載 UI;實際要下載到檔案,需要一個會回傳 cwd:// 動作且支援 /cwd/download 的 Bot Provider(例如 sandbox / code-server bot)。
聊天機器人載入中…

重點

  • cwd://downloadActiontype: "uri")就足以讓附件顯示下載圖示,不再需要 EMIT download_file
  • 點卡片或下載圖示時,SDK 會送出 GET <base>/cwd/download?custom_channel_id=...&relative_path=...

程式範例(附件 template)

template: {
type: MessageTemplateType.ATTACHMENT,
attachments: [
{
title: "業務員業績排行.json",
defaultAction: { type: "uri", uri: "cwd://業務員業績排行.json" },
downloadAction: { type: "uri", uri: "cwd://業務員業績排行.json" },
},
],
quickReplies: [],
}

上方範例為預覽模式(botProviderEndpoint: "skip"),用來展示附件的下載 UI;實際要下載檔案,需要一個會回傳 cwd:// 動作且支援 /cwd/download 的 Bot Provider。