himarupi's website

Discord Webhookの使い方
Last updated on

Discord Webhookの使い方

実際にメッセージ送信を試しながら解説

はじめに

このページでは、Discord Webhookの作成方法を解説するだけでなく、実際にWebhook URLを入力してメッセージ送信を試せます。

Webhook URL、メッセージ本文、username、avatar_url、embedなどをフォームに入力すると、Discordへ送信されるJSONやcurlコマンドも確認できます。

この記事では以下を扱います。

  • Discord Webhookとは
  • Discord Webhookを使うときの注意点
  • DiscordでWebhook URLを作成する方法
  • Webhook URLへPOSTしてメッセージを送る方法
  • usernameやavatar_urlで表示を変える方法
  • embedを使ったメッセージ装飾
  • ブラウザ上のフォームからWebhook送信を実際に試す

Discord Webhookとは

まずWebhookとは、あるイベントが発生したときに外部サービスや自作プログラムが指定されたURLへHTTPリクエストを送信し、受信側で処理を実行する仕組みのことです。

紹介するDiscordのWebhook機能では、事前に設定したチャンネルに任意のメッセージを送信できます。

たとえば、自作プログラムや外部サービスからDiscordのWebhook URLへPOSTすることで、指定したチャンネルにメッセージを投稿できます。

Discord Webhookを使うときの注意点

Webhook URLを知っている人は、そのURLを使ってチャンネルにメッセージを送信できます。

そのため、Webhook URLをGitHubなどの公開リポジトリに置いたり、誰でも見られる場所に貼ったりしないように注意してください。

この記事のフォームは動作確認用です。実際のサービスで使う場合は、Webhook URLをフロントエンドに直接埋め込まず、サーバー側や環境変数で管理するのが安全です。

Discord Webhook URLを作成する

チャットを送信できるようにする前に、DiscordのチャンネルでWebhookを作成する必要があります。

まず、メッセージを送信したいチャンネルの設定を開きます。

Discordのチャンネル設定を開く画面

次に、以下の順にクリックしてWebhookを作成します。

[連携サービス] > [ウェブフック] > [新しいウェブフック]

名前やアイコンは好きなように設定してください。

Discordの連携サービスから新しいウェブフックを作成する画面

作成できたら、Webhook URLをコピーします。

このURLを使って、外部からDiscordのチャンネルへメッセージを送信できます。

ここまでで事前準備は完了です。

フォームからDiscord Webhookを送信してみる

ここから実際にDiscord Webhookの送信を試せます。

作成したWebhook URLとメッセージを入力して送信すると、指定したDiscordチャンネルにメッセージが投稿されます。

任意で、username、avatar_url、embedを設定することもできます。

入力内容に応じて、POSTされるJSONとcurlコマンドも自動で更新されます。

注意
このフォームは、入力したWebhook URLへ実際にPOSTします。
テスト用のチャンネルやWebhookを使うことをおすすめします。

送信者の表示を変更する
Embedを設定する

Embedは空のままでも送信できます。タイトルや説明文を入力すると、Discord上でカード形式の表示になります。

Embedフィールド

フィールドは、Embed内に「項目名」と「内容」を追加するための設定です。

POSTするJSONを表示
実行されるcurlを表示

フォームで試せる項目

このフォームでは、Discord Webhookでよく使う項目をまとめて試せます。

項目内容
contentDiscordに送信する本文
usernameWebhook投稿時の表示名
avatar_urlWebhook投稿時のアイコン画像URL
embedsカード形式のメッセージ
embed.titleEmbedのタイトル
embed.descriptionEmbedの説明文
embed.colorEmbed左側の色
embed.thumbnailEmbed右上などに表示される小さい画像
embed.imageEmbed内に表示する画像
embed.footerEmbed下部のテキスト
embed.fieldsEmbed内に追加できる項目

入力内容に応じて、実際にPOSTされるJSONとcurlコマンドも自動で更新されます。

たとえば、メッセージだけを送る場合は以下のようなJSONになります。

{
  "content": "こんにちは"
}

usernameやavatar_urlを入力すると、送信者名やアイコンも変更できます。

{
  "username": "通知Bot",
  "avatar_url": "https://example.com/avatar.png",
  "content": "デプロイが完了しました"
}

embedを設定すると、Discord上でカード形式のメッセージとして表示できます。

{
  "content": "お知らせです",
  "embeds": [
    {
      "title": "メンテナンスのお知らせ",
      "description": "本日22時からメンテナンスを実施します。",
      "color": 5793266
    }
  ]
}

color#5865f2 のようなカラーコードではなく、10進数の数値で指定します。 このフォームでは、カラーピッカーで選んだ色を自動でDiscord Webhook用の数値に変換しています。

応用機能

この記事では基本的なWebhook送信を中心に扱いましたが、Discord Webhookには他にもいくつかの機能があります。

  • allowed_mentions:メンションの扱いを制御する
  • ファイル添付:画像やログファイルなどを送信する
  • thread_id / thread_name:スレッドに投稿する
  • wait:送信後のメッセージ情報をレスポンスで受け取る
  • components / with_components:ボタンやセレクトメニューなどを扱う

詳しい仕様はDiscord公式ドキュメントで確認できます。

この記事では、まず通常の通知メッセージでよく使う contentusernameavatar_urlembeds に絞って解説しました。

まとめ

Discord Webhookを使うと、外部サービスや自作プログラムからDiscordのチャンネルへ簡単にメッセージを送信できます。

この記事では、Webhook URLの作成方法から、フォームを使ったメッセージ送信、username・avatar_url・embedの設定までを解説しました。

ページ内のフォームを使えば、実際にPOSTされるJSONやcurlコマンドを確認しながらWebhookの動きを試せます。

実際のサービスでWebhookを使う場合は、Webhook URLを公開しないように注意し、サーバー側や環境変数で安全に管理しましょう。