4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

discordのbotをpythonで動かしてみる

Posted at

前回の記事で無事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。
GeneralInfo.png


左のタブから「BOT」を選択し、「ADD BOT」を選択。注意書きが表示されるので続行。
プログラムではTOKENが必要になるのでこれをメモ。一応外部に漏れるとまずいので取扱には注意。
テストbotの段階なので「PUBLIC BOT」のチェックは外しておく。(外さなくてもいい)
「Save Changes」を押して次へ。
bot_create.png


左のタブから「OAUTH2」を選択し、ページ下の「OAUTH2 URL GENERATOR」から「bot」にチェックを入れると、URLが表示される。
OAUTH.png
さらにページ下の「BOT PERMISSIONS」から必要そうなものにチェックを入れておく。(まだよくわからないのでとりあえず画像のとおりにした)
botpermissions.png

さきほどのURLが少し変わっているのでこれを踏むとdiscordのサーバーにbotを招待できるので招待しておく。

inivite.png
無事にサーバーに参加。

##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がオンラインに。
result.png

#おわり
次回からbotに機能をつけていく。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?