DiscordでBOT作成メモ w/ discord.py

Category: プログラム関連, 日記 | Date: 2018年9月29日 | Author: Gappuri4th |

pythonを使ったDiscordでのBOT作成メモ.

必要なもの
・Discordアカウント
・管理者権限を持っているDiscordサーバ
・pythonが実行可能な適当なサーバ

自PCが動いているときだけBOTが動作していればいいだけならサーバは普段使いのPCでもok. Linux環境を前提に書いていくのでWin機なら記述を脳内変換するかCygwinなりWSLなりを使う.

まずはBOTを作成する.ブラウザでDiscordにログイン、https://discordapp.com/developers/applications/にアクセス.
Create an applicationから新規アプリケーション作成.名前とかは適当に決める.
このときCLIENT IDが確認できるので、どこかにメモしておく.これは他の人に見られるとよろしくないので注意して保管する.
次にSettingsのBotタブからAdd BOTをクリックしてBOT作成.注意が表示されるので「Yes, do it!!」を選択.

BOTが作成されたらTOKENをどこかにメモしておく.これも他の人に見られないように保管する.

次にBOTをDiscordサーバに追加する.以下のURLの赤字の部分を先ほど取得したCLIENT IDに置き換えてアクセス.
https://discordapp.com/api/oauth2/authorize?client_id=157730590492196864&scope=bot&permissions=1
追加するDiscordサーバを選択して認証.

認証が終わると選択したDiscordサーバにBOTが追加されているはず.

次にBOTの中身を作成.とりあえずdiscord.pyを使ってpythonで作るとする.
サーバにpython3がインストールされていない場合はインストール.
sudo apt install -y python3 python3-pip python3-dev

discord.pyをインストール.
python3 -m pip install -U discord.py

次にBOTプログラムを置くディレクトリを作成.名前や場所は適当に.
mkdir discord-test-bot
cd discord-test-bot

サンプルプログラムを作成.下記のプログラムをtestbot.pyという名前で保存し、BOTのTOKENと書かれているところに自身のBOTのTOKENを入力.

BOTの起動.
python3 testbot.py

Logged in as
BOTの名前
CLIENT ID
———
といった感じで表示されるはず.
discordを見てみるとBOTがオンラインになっていて、generalで!testや!sleepを入力するとBOTが反応してメッセージを返してくる.

これが確認出来たらBOTの導入は成功.
BOTを止めたいときはpythonスクリプトを停止させればOK.

メッセージを受け取ったら何かしら返すだけのBOTならサンプルプログラムをもとにすぐ作れそう.ただ、条件式がmessage.content.startswith()だとその文字列から始まっていればなんでも反応してしまうので、message.contentを==演算子で比較したほうが良いかも.
ほかのイベントは公式リファレンスを参照.
時報みたいに定期実行をさせたい場合はon_ready()の最後に無限ループを作って、ループの中に処理とawait asyncio.sleep(実行間隔[s])を書いてやればいいと思う.この手法が正しいのかは知らない.

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)