【Python】Discord に通知する BOT を作る

Uncategorized
712 words

Pythonを動かしたまま外出をしたときに、進捗や状況が知りたいってことがあったので、定期的にDiscordに通知するBOTを作りたいと思います。

BOTと言っても大げさなことはせずに、単純にループで繰り返して定期的に通知を送るだけです。

はじめに

  • Windows 10 Home 21H1
  • Python 3.8.10
  • discordwebhook 1.0.2
  • Discordアカウント取得済み
  • Discordデスクトップアプリインストール済み

Discord の Webhook を発行する

Discordに通知するために Webhook という機能を使います。

Webhookとは、HTTPプロトコルのPOSTリクエストを利用して、情報のやり取りをする手法のことです。

Discord は Webhook の機能を提供しているので、まずはその機能を使えるようにします。

サーバーを追加

Discord のサーバーを持ってない人はまずサーバーを追加します。持ってる人は飛ばして大丈夫。

サーバーを追加

とりあえず、オリジナルサーバーを作成します。

オリジナルの作成

この辺りは適当で。

自分と友達のため

サーバー名を決めてサーバーの完成です。

サーバー名を入力

Webhook を発行

続いて今作ったサーバーに通知を送れるようにするため、Webhook を発行します。

今回は一般チャンネルに通知させたいため、一般チャンネルの Webhook を発行します。別のチャンネルや通知専用のチャンネルに通知をさせたい場合は、そのチャンネルで Webhook を発行して下さい。

「チャンネルの編集」をクリックし、

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

連携サービスを選択し「ウェブフックを作成」をクリックすると Webhook が作成されます。

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

最後に「ウェブフックURLをコピー」を押して、クリップボードに WebhookURL をコピーしメモ帳に貼り付けておきましょう。今はまだ使わないので。

ウェブフックURLをコピーをクリック

Discord に通知を飛ばす

早速 Discord に通知を飛ばしてみます。

Webhook は単なる URL なので requestsライブラリのPOSTメソッドでも全然問題ないんですが、今回はもっと簡単な discordwebhookライブラリを使って通知を飛ばします。

discordwebhook

discordwebhookライブラリを使いたいのでインストールします。

1
pip install discordwebhook

Successfully と表示されればインストール完了。

pip install discordwebhook

文字だけ

URLの部分は自分の WebhookURL を張り付けて実行して下さい。

1
2
3
4
from discordwebhook import Discord

discord = Discord(url="https://discordapp.com/api/webhooks/******************/********************************************************************")
discord.post(content="Hello, world.")

実行すると Discord に通知が飛んできます。

文字だけ

画像付き

画像も送ることができます。

1
2
3
4
5
6
7
8
9
10
from discordwebhook import Discord

discord = Discord(url="https://discordapp.com/api/webhooks/******************/********************************************************************")
discord.post(
content="Hello, world.",
file={
"animal1": open("C:/Users/*****/Desktop/animal_wolf01_01.png", "rb"),
"animal2": open("C:/Users/*****/Desktop/animal_deer01_01.png", "rb")
}
)

画像付き

こんな使い方できます。

リセマラ結果を通知