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])を書いてやればいいと思う.この手法が正しいのかは知らない.
コメントを残す