跳到內容

互動與指令總覽

狀態 Stable · 最後驗證 2026-07-11 · API v10 · 來源 Interactions overviewReceiving & responding

互動(interaction) 是使用者呼叫你應用程式的任何時刻:執行指令、點擊按鈕、從選單挑選, 或送出互動視窗(modal)。互動是建構應用程式 UX 最新、最正統的方式 — 它取代了過去用來刮取 訊息內容的「前綴指令」(前綴指令如今還需要特權 intent MESSAGE_CONTENT,見 Intent)。

[!NOTE] 翻譯狀態 本節的深入頁面(生命週期、簽章驗證、斜線指令、元件、回應與後續訊息、安全陷阱)目前提供 英文版,繁體中文版正在準備中。連結會回退為英文。

頁面 涵蓋內容
互動生命週期 5 種互動類型、3 秒內 ACK、延遲回應、有效 15 分鐘的 token
簽章驗證 HTTP 端點的 Ed25519 流程與陷阱
斜線指令 指令類型、選項、自動完成、在地化、註冊
元件:按鈕、選單、互動視窗 互動元件與 Components V2
回應與後續訊息 回應類型、ephemeral、編輯、後續訊息
安全陷阱 會讓互動應用程式故障或外洩的錯誤
類型 使用者觸發方式 範例
斜線指令 (CHAT_INPUT) 1 輸入 /name 並帶入型別化選項 /ban user:@x reason:"spam"
使用者指令 (USER) 2 右鍵點擊使用者應用程式 「顯示頭像」
訊息指令 (MESSAGE) 3 右鍵點擊訊息應用程式 「回報」「翻譯」

指令可為全域(所有安裝)或限伺服器(單一伺服器,立即更新 — 適合開發)。詳見 斜線指令

除了指令,訊息還能帶有互動元件 — 按鈕選單(字串/使用者/身分組/可提及/頻道), 以及彈出式互動視窗。Discord 的 Components V2 系統(以訊息為單位,透過 IS_COMPONENTS_V2 旗標 1 << 15 啟用)更能讓你以元件組成整則訊息,取代 content + embeds。見 元件

HTTP 互動端點 Gateway
傳輸 Discord POST 到你的網址 以 Gateway 事件傳遞
主機 適合無伺服器、無狀態 需要持久連線
須驗證 Ed25519 簽章 (強制) 否(已完成驗證)
適用時機 不想維護常駐程序 你已為事件維護連線

端點方式不需連線,可在 Workers/Lambda/Vercel 上執行,但你必須驗證每個請求的簽章詳情)。可執行範例: interaction-endpoint(HTTP)與 bot-gateway-minimal(Gateway)。

先從互動生命週期開始 — 它的時序規則是後續一切的基礎。