前回の記事で無事pythonデビューを果たしたので、pythonで何を作るか。
#discord.pyでbotを作る
題名にもある通りdiscordのbotを作りたい。
主に友人とゲームをするときにお世話になっているdiscordは、APIが公開されていて様々な言語でラッピングされたAPIも公開されている。
pythonを始めたのはdiscord.pyでbotを作るため。
C#等でもできるらしいがせっかくなので新しい言語を触ってみるということでpythonを選択。
この記事では自作テストbotをサーバーに導入して動作確認をする。
どんな機能をつけるかは次回以降。
##botを登録する
botの動作をpythonで書く前に、プログラムに必要なトークンを取得する。
https://qiita.com/PinappleHunter/items/af4ccdbb04727437477f
を参考に公式サイトからbotを作る。
サイトの内容が少しだけ変わっているようなので改めて載せていく。
developer portalのApplicationsから「Create an application」を選択。
「NAME」の部分を変更し、ページ下の「Save Changes」をクリックし、「All your edits have been carefully recorded.」と出ればOK。
左のタブから「BOT」を選択し、「ADD BOT」を選択。注意書きが表示されるので続行。
プログラムではTOKENが必要になるのでこれをメモ。一応外部に漏れるとまずいので取扱には注意。
テストbotの段階なので「PUBLIC BOT」のチェックは外しておく。(外さなくてもいい)
「Save Changes」を押して次へ。
左のタブから「OAUTH2」を選択し、ページ下の「OAUTH2 URL GENERATOR」から「bot」にチェックを入れると、URLが表示される。
さらにページ下の「BOT PERMISSIONS」から必要そうなものにチェックを入れておく。(まだよくわからないのでとりあえず画像のとおりにした)
さきほどのURLが少し変わっているのでこれを踏むとdiscordのサーバーにbotを招待できるので招待しておく。
##discord.pyの導入
botの作成はできたので中身を作る準備をする。まずはdiscord.pyのパッケージの導入。
以下のコードをcmdから実行。pipってのがNuGetとかnpmみたいなやつかな?と解釈。
python3 -m pip install -U discord.py
実行すると「pipのバージョンが低いから上げろ」的な黄色い文が表示され(画像を取り忘れた)、アップデートを実行するための命令も一緒に出力されていたのでそれを実行。pipのバージョンが上がったのでもう一度discord.pyの導入をし、無事終了。
##VS2017で実行
さきほどの記事を参考に、挨拶を返すプログラムを書く。ほぼ同じコードなのでここには載せない。
しかし、
import discord
がモジュールとして認識されておらず、実行に失敗する。python自体の勉強はしていないのでぐぐる。
「import discord Syntax Error」等で調べていると、このフォーラムを見つけたので、「ツール」→「Python」→「Python環境」からPython3.7.0のパッケージからdiscordをアップデート。
実行できるようになったかと思いきやまだ動かないので、続けて調べていると、discord.pyの公式Githubのisuueに3.7.0では動かないと書いてあった。最初から公式サイトの動作環境を見ておくべきだった。
「ツール」→「Python」→「Python環境」でPython3.6のパッケージにdiscord.pyを導入し、「ソリューションエクスプローラー」の「Python環境」を右クリックし「Python環境を追加/削除」で3.7.0から3.6.3に。
この辺のパッケージ設定は正しいやり方なのかはわからないので、詳しい人に聞くか書籍などで正しく学んだほうが良い。
無事ソースコードが色鮮やかになり、実行するとサーバーにいたTest greet botがオンラインに。
#おわり
次回からbotに機能をつけていく。