Discord Webhookは、外部アプリケーションからDiscordのチャンネルにメッセージを送信するための強力なツールです。自動通知、ログの転送、ボットを使わずにカスタムメッセージを送信するなど、様々な用途で活用できます。
Webhook の作成
- Discordサーバーを開き、メッセージを送信したいチャンネルの設定を開きます。
- 「連携サービス」タブを選択し、「ウェブフック」をクリックします。
- 「新しいウェブフック」ボタンをクリックします。
- Webhookの名前、アバター画像、送信先のチャンネルを設定します。
- 「保存」をクリックすると、Webhook URLが表示されます。このURLは非常に重要なので、安全な場所に保管してください。 絶対に他人に共有しないでください。
Webhook URL の構造
Webhook URLは以下のような構造になっています。
https://discord.com/api/webhooks/<Webhook ID>/<Webhook Token>
-
<Webhook ID>
: Webhookを一意に識別する数値 -
<Webhook Token>
: Webhookへのアクセスを認証するための文字列
メッセージの送信
Webhook URLを使用して、POSTリクエストを送信することでメッセージを送信できます。リクエストボディはJSON形式で、以下のようなパラメータを指定できます。
-
content
: メッセージのテキスト。DiscordのMarkdown記法が使用できます。 -
username
: Webhookの表示名。 -
avatar_url
: Webhookのアバター画像のURL。 -
embeds
: リッチな埋め込みメッセージを送信するための配列。 -
tts
: メッセージをテキスト読み上げで送信するかどうか (true/false)。 -
allowed_mentions
: メンションの動作を制御するためのオブジェクト。
シンプルなメッセージ送信例 (Python):
import requests
import json
webhook_url = "your_webhook_url"
message = {
"content": "Webhookからのテストメッセージです!"
}
headers = {
'Content-Type': 'application/json'
}
response = requests.post(webhook_url, data=json.dumps(message), headers=headers)
if response.status_code == 204:
print("メッセージを送信しました!")
else:
print(f"エラーが発生しました: {response.status_code}")
埋め込みメッセージ (Embeds)
埋め込みメッセージを使用すると、よりリッチなメッセージを送信できます。タイトル、説明、画像、フィールドなどを追加できます。
埋め込みメッセージ送信例 (Python):
import requests
import json
webhook_url = "your_webhook_url"
message = {
"embeds": [
{
"title": "埋め込みメッセージのタイトル",
"description": "埋め込みメッセージの説明",
"color": 0x00ff00, # 色 (16進数)
"fields": [
{"name": "フィールド1", "value": "値1"},
{"name": "フィールド2", "value": "値2"}
]
}
]
}
headers = {
'Content-Type': 'application/json'
}
response = requests.post(webhook_url, data=json.dumps(message), headers=headers)
if response.status_code == 204:
print("埋め込みメッセージを送信しました!")
else:
print(f"エラーが発生しました: {response.status_code}")
これを実行するとこのようなメッセージが送信されます。
まとめ
Webhookは、Discordと外部アプリケーションを連携させるための便利なツールです。様々なプログラミング言語で簡単に利用できるので、ぜひ活用してみてください。より詳細な情報は、Discord Developer Portalの公式ドキュメントを参照してください。