コンテンツにスキップ

インタラクションとコマンドの概要

ステータス Stable · 最終検証 2026-07-11 · API v10 · 出典 Interactions overview, Receiving & responding

インタラクションとは、ユーザーがアプリを呼び出すあらゆる瞬間です — コマンドの実行、 ボタンのクリック、セレクトメニューの選択、モーダルの送信。インタラクションは、アプリの UX を 構築するための最新かつ第一級の方法であり、メッセージ本文を読み取っていた旧来の「プレフィックス コマンド」を置き換えました(プレフィックスコマンドは今や特権インテント MESSAGE_CONTENT も 必要とします。インテントを参照)。

[!NOTE] 翻訳状況 このセクションの詳細ページ(ライフサイクル、署名検証、スラッシュコマンド、コンポーネント、 応答とフォローアップ、セキュリティの落とし穴)は現在英語で提供されており、日本語版は 準備中です。リンク先は英語にフォールバックします。

ページ 内容
インタラクションのライフサイクル 5 種類のインタラクション、3 秒以内の ACK、遅延応答、15 分間有効なトークン
署名検証 HTTP エンドポイント向けの Ed25519 フローと落とし穴
スラッシュコマンド コマンドの種類、オプション、オートコンプリート、ローカライズ、登録
コンポーネント:ボタン・セレクト・モーダル インタラクティブコンポーネントと Components V2
応答とフォローアップ 応答タイプ、エフェメラル、編集、フォローアップメッセージ
セキュリティの落とし穴 インタラクションアプリを壊す・危険にさらす間違い
種類 ユーザーの起動方法
スラッシュコマンド (CHAT_INPUT) 1 型付きオプションで /name を入力 /ban user:@x reason:"spam"
ユーザーコマンド (USER) 2 ユーザーを右クリック → アプリ 「アバターを表示」
メッセージコマンド (MESSAGE) 3 メッセージを右クリック → アプリ 「通報」「翻訳」

コマンドはグローバル(すべてのインストール)またはギルド限定(1 つのサーバー、即時反映 — 開発に最適)にできます。詳細:スラッシュコマンド

コンポーネント(インタラクティブ UI)

Section titled “コンポーネント(インタラクティブ UI)”

コマンドに加えて、メッセージはインタラクティブコンポーネント — ボタンセレクトメニュー (文字列/ユーザー/ロール/メンション可能/チャンネル)、ポップアップモーダル — を持てます。 Discord の Components V2 システム(メッセージ単位で IS_COMPONENTS_V2 フラグ 1 << 15 により オプトイン)では、content + embeds の代わりにメッセージ全体をコンポーネントで構成できます。 コンポーネントを参照。

インタラクションを受け取る 2 つの方法

Section titled “インタラクションを受け取る 2 つの方法”
HTTP インタラクションエンドポイント ゲートウェイ
通信方式 Discord があなたの URL に POST ゲートウェイイベントとして配信
ホスティング サーバーレス向き、ステートレス 永続的なソケットが必要
Ed25519 署名の検証 必須 不要(すでに認証済み)
適する場合 常時稼働プロセスを避けたい すでにイベント用のソケットを運用中

エンドポイント方式はソケット不要で Workers/Lambda/Vercel 上で動作しますが、すべてのリクエストの 署名を検証する必要があります詳細)。実行可能: interaction-endpoint(HTTP)と bot-gateway-minimal(ゲートウェイ)。

まずインタラクションのライフサイクルから — そのタイミング規則が すべての基礎になります。