Discord の Webhook を数秒でテストできます。URL を貼り付けて検証し、テストメッセージを送って動作を確認してください。
Discord の Webhook は、ボットを使わずに特定の Discord チャンネルへメッセージを送信できる固有の URL です。GitHub の通知、サーバー監視のアラート、CI/CD パイプラインの更新、独自の連携などによく使われます。Webhook にはそれぞれ名前とアバターがあり、特定のチャンネルに紐づいています。
Webhook の URL を貼り付けて「チェック」をクリックします。ツールが Discord API に対して URL を検証し、Webhook の名前、アバター、紐づくチャンネルを表示します。有効であれば、任意のメッセージを入力して Webhook 経由で送信し、動作を確認できます。Webhook の URL はセキュリティ上の理由で当社サーバーを経由しますが (ブラウザは CORS のため Discord API を直接呼び出せません)、保存もログ記録もされません。
Webhook のリクエストが失敗すると、Discord は数値の code と message を含む JSON ボディとともに HTTP ステータスを返します。実際に遭遇するのは次のものです。
retry_after フィールド (秒) を返します。必ず従ってください。content も embeds も files もありません。少なくとも 1 つは必要です。embed.color を 10 進数の整数ではなく 16 進数の文字列で送っていることです。送信前に #9B59B6 を 10181046 に変換してください。Discord は Webhook 単位とチャンネル単位でレート制限を適用します。バケットの正確な大きさは固定値ではなくサーバー側で決まり、レスポンスヘッダーで示されます。成功したレスポンスには必ず X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset-After が含まれます。次のリクエストの計画にはこれらを読み取り、固定のレートをハードコードしないでください。429 のレスポンスボディには retry_after の値 (秒) も含まれます。大量に送信する連携 (ビルドパイプライン、ログ集約) では、複数のイベントを 1 通のメッセージにまとめてください。Webhook 1 回の呼び出しで最大 10 個の埋め込みを、埋め込みあたり合計 6,000 文字まで送れるため、たいていはイベントの集中を 1 リクエストに収められます。
Webhook の URL はベアラー資格情報です。完全な URL を持っている人は誰でも、追加の認証なしに Webhook のボットとしてチャンネルに投稿できます。パスワードと同じように扱ってください。
allowed_mentions で明示的に許可しない限り @everyone と @here のメンションを無視します。メンションの通知が不要なら "parse": [] を設定してください。ターミナルからテストしたい場合、最小のペイロードは content フィールド 1 つだけです。POST に成功すると空のボディで HTTP 204 が返り、URL に ?wait=true を付けると作成されたメッセージの JSON とともに HTTP 200 が返ります。メッセージ ID が必要なときは ?wait=true を使ってください (たとえば後から /webhooks/<id>/<token>/messages/<message_id> エンドポイントでメッセージを編集・削除する場合です)。
Powered by Pigona - Discord 向けの無料翻訳