discord.py でDiscord Botを始める

こんにちは。家族の情報共有のためにゲーマー御用達チャットツール「Discord」が使えないか模索しています。Discordには沢山のBotがありますが、家族用のプライベート感の強いBotが作れたらいいかなぁと思い立ちました。

前提条件
  • Python 3.5.3以上がインストール済み(discord.py要件)
  • Discordアカウント作成済み

Botアカウントの作成

こちらのサイトに記載されている通りに実施していますが、英語サイトなので備忘録も兼ねて作業内容を残しておきます。

DiscordWebサイトにログインします。

次にDiscord開発者ポータルサイトのアプリケーションページに行き、「New Application」を選択します。

アプリケーション名を付けて「Create」します。

作成されると以下画面になるので、適当にアイコンを入れてあります。

Botを選択して「Add Bot」します。

こんな感じで警告メッセージが出ますが、Yesで進みます。

OAuth2を選択して、SCOPESで「Bot」にチェックを入れます。

SCOPESでBotを選択すると、BOT PERMISSIONSが表示されるので、必要な権限にチェックを入れます。

チェックを入れると、SCOPESのURL表示がチェック状況に応じて変わるので、そのURLをコピーしてブラウザで開きます。

作成したBotを入れるサーバーを選択します。

権限の確認があります。

私は人間です、チェックをします。

これでサーバーに作成したBOTが入りました。

Botの作成

ここからPython開発環境にdiscord.pyをインストールします。Python仮想環境を用意する事をお勧めします。過去にvirtualenvの環境作成記事を書いているので、良かったらご覧ください。

Windows環境にPython3.8とvirtualenvのインストール

2020.06.24

作成した仮想環境があれば、その環境に以下でインストールします。

pip install -U discord.py

Bot用pyファイルを置くディレクトリを用意します。discord.pyのGithubページにexampleがあるので、そこから適当に拝借して試してみます。

こちらのコードの最後の「bot.run(‘token’)」のtokenは以下で取得したものに書き換えます。

こちらのコードは最初のコメントにあるように「’members’ privileged intents」がいるそうなので、以下で設定します。

これで実行します。

python basic_bot.py

正常起動したら、Discordでコマンドを打ってみます。

こんな感じでBotから返ってきました。