【プログラミング】DiscordWebhookを使ってDiscordに自動でメッセージを送ってみよう
PythonからDiscordにメッセージを送りたい…
何かの通知をDiscordで受け取りたい。
そんな時に今回のDiscordWebhookを利用すれば簡単にメッセージを送信できる。
DiscordWebhook

DIscordWebhookとは
一言で言うと、「特定のWeb URL(通知口)に対してデータを送るだけで、Discordのテキストチャンネルに自動でメッセージを投稿できる仕組み」だ。
本来、Discordで自動メッセージを送るには「Bot」を作成してトークンを発行し、認証処理を書くという複雑な手順が必要。しかし、Webhookを使えばそうした面倒な認証や準備を一切スキップできる。
ウェブフックを作成

メッセージを送信したいDiscordサーバーのテキストチャンネルを右クリック

チャンネルの編集をクリック

連携サービスをクリック

ウェブフックを作成をクリック

名前を入力し、変更を保存するをクリック

ウェブフック URL をコピーをクリック(※このURLを後でPythonコードに使う)
これで、PythonからDiscordへメッセージを自動送信する準備が完了した。
サンプルコード
事前準備
まずは、事前準備としてPythonのファイルを用意する。
app.py
#app.py
メッセージを送信するコード
import requests
WEBHOOK_URL = "ここにコピーしたウェブフックURLを貼り付け"
def send_discord_message(message):
data = {
"content": message
}
response = requests.post(WEBHOOK_URL, json=data)
if response.status_code == 204:
print("Discordへの送信に成功")
else:
print(f"送信失敗 (ステータスコード: {response.status_code})")
if __name__ == "__main__":
send_message = "Pythonからのテストメッセージ"
send_discord_message(test_message)
コードの説明
モジュールの読み込み
import requests
import requests: Webサーバーに対してHTTPリクエスト(データの送信や取得)を行うためのライブラリだ。
Webhook URLの設定
WEBHOOK_URL = "ここにコピーしたウェブフックURLを貼り付け"
DiscordでコピーしたWebhookのURLを格納する変数だ。ここに指定したURL宛にメッセージを送る。
関数の定義と送信データの作成
def send_discord_message(message):
data = {
"content": message
}
引数で受け取ったメッセージをDiscordへ送信するための関数を定義している。
DiscordのWebhook機能は {"content": "送信したい本文"} という形式のデータを要求するため、その指定に合わせた辞書型データ(JSON)を作成している。
POSTリクエストの送信
response = requests.post(WEBHOOK_URL, json=data)
requests.post() を使い、設定したWebhook URL宛に作成したデータをJSON形式で送信している。
送信結果の判定
if response.status_code == 204:
print("Discordへの送信に成功")
else:
print(f"送信失敗 (ステータスコード: {response.status_code})")
Discord Webhookは送信が正常に完了すると、ステータスコード 204(No Content) を返してくる仕様だ。
そのため、204の場合は「成功」、それ以外の場合はステータスコードを含めたエラーメッセージを表示して原因を確認できるようにしている。
実行処理
if __name__ == "__main__":
send_message = "Pythonからのテストメッセージ"
send_discord_message(send_message)
このスクリプトが実行された時初めに動作する処理だ。
send_message に送信したいメッセージを入力し、定義した send_discord_message() 関数を呼び出して送信を行っている。
サンプルコードの動作確認

サンプルコードを実行すると、Discord側にメッセージが届く。
これでDiscordにメッセージを送信できるようになった。
ソースコードのダウンロード

これらのコードはGithubにアップロードしている。
上記のページに、すべてアップロードされているので、必要な方はぜひ使ってみてくれ。
まとめ
今回は、Pythonの requests ライブラリを使って Discord の Webhook へメッセージを送信する方法を解説した。
Webスクレイピングや定期処理のスクリプトと組み合わせることで、「特定条件を満たしたときに自動でDiscordへ通知する」といった仕組みを簡単に作ることができる。
自動化ツールや監視ツールの通知機能として、ぜひ活用してみてくれ。
コメントはこちらから