Webhook URL を取得する
ステータス
Stable· 最終検証 2026-07-11 · APIv10· 出典 Support: Webhook 入門, Webhook リソース
これが目玉のタスクです。チャンネルに投稿するために DISCORD_WEBHOOK_URL を取得します。
方法は 2 つ — UI(推奨、60 秒)と API(自動化向け)。取得後、動作確認し、安全に保管し、
失効させる方法を学びます。
- Webhook の管理(サーバー管理の一部)権限を持つサーバー。持っていない場合は、サーバー 管理者に依頼してください(管理者が Webhook を作成し、URL を渡すことができます)。
- 対象のテキストチャンネル。
方法 A — Discord アプリで作成する(推奨)
Section titled “方法 A — Discord アプリで作成する(推奨)”- サーバーを開き、対象のテキストチャンネルにカーソルを合わせて ⚙️ 歯車
(チャンネルの編集)をクリック。
- または:サーバー設定 → 連携サービス → ウェブフック。
- 連携サービス → ウェブフック → 新しいウェブフック(古いレイアウトでは ウェブフックを作成)を選択。
- 名前(既定の表示名)と、任意でアバターや特定のチャンネルを設定。
- ウェブフック URL をコピーをクリック。
- 変更を保存をクリック。
コピーされた文字列が 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 をプログラムで発行する場合にのみ価値があります。
# POST /channels/{channel.id}/webhookscurl -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 応答には id と token が含まれ、実行可能な URL は次のとおりです。
https://discord.com/api/v10/webhooks/{id}/{token}動作確認する
Section titled “動作確認する”最速の確認方法 — 1 行の POST(認証ヘッダー不要。トークンは URL 内にあります)。
curl -X POST "$DISCORD_WEBHOOK_URL" \ -H "Content-Type: application/json" \ -d '{ "content": "✅ Webhook は稼働中 — curl から送信。" }'期待される結果:HTTP 204 No Content(本文なし)と、チャンネルへのメッセージ表示。 実際のサンプルを実行するには:
cd examples/webhook-minimalcp .env.example .env # URL を DISCORD_WEBHOOK_URL として貼り付けnode send.mjs安全に保管する
Section titled “安全に保管する”コードではなく環境ファイルに入れてください。
# .env (git 管理外 — .gitignore を参照)DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/123.../AbC...よくあるエラー
Section titled “よくあるエラー”| 症状 | 原因 | 対処 |
|---|---|---|
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 を明示的に設定(控えめに) |
失効 / ローテーション
Section titled “失効 / ローテーション”Webhook URL が漏洩した場合は、直ちに削除または再生成してください。ログの消去ではなく ローテーションが真の対策です。
- UI: チャンネル/設定 → 連携サービス → ウェブフック →(該当 Webhook)→ 削除。 再作成して新しい URL を取得。
- API:
DELETE https://discord.com/api/v10/webhooks/{id}/{token}。
削除された瞬間に古い URL は機能しなくなります。
- メッセージを送信する — embed、ファイル、スレッド、
ユーザー名、
allowed_mentions、レート制限を、コピペ可能なペイロードとともに。