コンテンツにスキップ

Webhook URL を取得する

ステータス Stable · 最終検証 2026-07-11 · API v10 · 出典 Support: Webhook 入門, Webhook リソース

これが目玉のタスクです。チャンネルに投稿するために DISCORD_WEBHOOK_URL を取得します。 方法は 2 つ — UI(推奨、60 秒)と API(自動化向け)。取得後、動作確認し、安全に保管し、 失効させる方法を学びます。

  • Webhook の管理(サーバー管理の一部)権限を持つサーバー。持っていない場合は、サーバー 管理者に依頼してください(管理者が Webhook を作成し、URL を渡すことができます)。
  • 対象のテキストチャンネル。

方法 A — Discord アプリで作成する(推奨)

Section titled “方法 A — Discord アプリで作成する(推奨)”
  1. サーバーを開き、対象のテキストチャンネルにカーソルを合わせて ⚙️ 歯車チャンネルの編集)をクリック。
    • または:サーバー設定 → 連携サービス → ウェブフック
  2. 連携サービス → ウェブフック → 新しいウェブフック(古いレイアウトでは ウェブフックを作成)を選択。
  3. 名前(既定の表示名)と、任意でアバターや特定のチャンネルを設定。
  4. ウェブフック URL をコピーをクリック。
  5. 変更を保存をクリック。

コピーされた文字列が DISCORD_WEBHOOK_URL です。次のような形式です。

https://discord.com/api/webhooks/1234567890123456789/AbCdEf-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
└──── webhook id ───┘ └──────────────── webhook token (シークレット) ────────────────┘
  • id は準公開ですが、最後の / 以降のトークンは投稿権限を与えるシークレットです。 URL 全体をパスワードのように扱ってください。

方法 B — API で作成する(自動化向け)

Section titled “方法 B — API で作成する(自動化向け)”

対象チャンネルでWebhook の管理権限を持つボット/アプリトークンが 必要です。Webhook をプログラムで発行する場合にのみ価値があります。

Terminal window
# POST /channels/{channel.id}/webhooks
curl -X POST "https://discord.com/api/v10/channels/CHANNEL_ID/webhooks" \
-H "Authorization: Bot $DISCORD_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "atlas-notifier" }'

JSON 応答には idtoken が含まれ、実行可能な URL は次のとおりです。

https://discord.com/api/v10/webhooks/{id}/{token}

最速の確認方法 — 1 行の POST(認証ヘッダー不要。トークンは URL 内にあります)。

Terminal window
curl -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{ "content": "✅ Webhook は稼働中 — curl から送信。" }'

期待される結果:HTTP 204 No Content(本文なし)と、チャンネルへのメッセージ表示。 実際のサンプルを実行するには:

Terminal window
cd examples/webhook-minimal
cp .env.example .env # URL を DISCORD_WEBHOOK_URL として貼り付け
node send.mjs

コードではなく環境ファイルに入れてください。

# .env (git 管理外 — .gitignore を参照)
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/123.../AbC...
症状 原因 対処
401 Unauthorized / 404 Unknown Webhook URL が誤り、または Webhook が削除/再生成された URL を再コピー。削除された場合は再作成
content/embeds に関する 400 空メッセージ、または 2000 文字超 / 10 embed 超 / embed 合計 6000 文字超 ペイロードを削減。制限参照
429 Too Many Requests レート制限(Webhook あたり約 30 通/分) retry_after を尊重。メッセージをまとめる
@everyone が通知されない 既定でブロック allowed_mentions を明示的に設定(控えめに)

Webhook URL が漏洩した場合は、直ちに削除または再生成してください。ログの消去ではなく ローテーションが真の対策です。

  • UI: チャンネル/設定 → 連携サービス → ウェブフック →(該当 Webhook)→ 削除。 再作成して新しい URL を取得。
  • API: DELETE https://discord.com/api/v10/webhooks/{id}/{token}

削除された瞬間に古い URL は機能しなくなります。

  • メッセージを送信する — embed、ファイル、スレッド、 ユーザー名、allowed_mentions、レート制限を、コピペ可能なペイロードとともに。