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 をコピーしメモ帳に貼り付けておきましょう。今はまだ使わないので。
Discord に通知を飛ばす
早速 Discord に通知を飛ばしてみます。
Webhook は単なる URL なので requestsライブラリのPOSTメソッドでも全然問題ないんですが、今回はもっと簡単な discordwebhookライブラリを使って通知を飛ばします。
discordwebhook
discordwebhookライブラリを使いたいのでインストールします。
1 | pip install discordwebhook |
Successfully と表示されればインストール完了。
文字だけ
URLの部分は自分の WebhookURL を張り付けて実行して下さい。
1 | from discordwebhook import Discord |
実行すると Discord に通知が飛んできます。
画像付き
画像も送ることができます。
1 | from discordwebhook import Discord |
こんな使い方できます。