互動與指令總覽
狀態
Stable· 最後驗證 2026-07-11 · APIv10· 來源 Interactions overview、Receiving & 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 |
右鍵點擊訊息 → 應用程式 | 「回報」「翻譯」 |
指令可為全域(所有安裝)或限伺服器(單一伺服器,立即更新 — 適合開發)。詳見 斜線指令。
元件(互動式 UI)
Section titled “元件(互動式 UI)”除了指令,訊息還能帶有互動元件 — 按鈕、選單(字串/使用者/身分組/可提及/頻道),
以及彈出式互動視窗。Discord 的 Components V2 系統(以訊息為單位,透過 IS_COMPONENTS_V2
旗標 1 << 15 啟用)更能讓你以元件組成整則訊息,取代 content + embeds。見
元件。
接收互動的兩種方式
Section titled “接收互動的兩種方式”| HTTP 互動端點 | Gateway | |
|---|---|---|
| 傳輸 | Discord POST 到你的網址 |
以 Gateway 事件傳遞 |
| 主機 | 適合無伺服器、無狀態 | 需要持久連線 |
| 須驗證 Ed25519 簽章 | 是(強制) | 否(已完成驗證) |
| 適用時機 | 不想維護常駐程序 | 你已為事件維護連線 |
端點方式不需連線,可在 Workers/Lambda/Vercel 上執行,但你必須驗證每個請求的簽章
(詳情)。可執行範例:
interaction-endpoint(HTTP)與
bot-gateway-minimal(Gateway)。
先從互動生命週期開始 — 它的時序規則是後續一切的基礎。