Pythonで簡易的なDiscordのBotを作成する
投稿日:
更新日:
VS Codeの拡張機能をインストール
Discord Botのセットアップ
- Discord Developer Potalにアクセスし、右上の[New Application]を押下して新しいアプリケーションを作成します。
- NemeにBotの名前を設定し、規約とポリシーの同意にチェックを入れてから[Create]を押下します。
- Botメニューから「TOKEN」セクションの[Reset Token]を押下します。アカウントのパスワードを入力するとTOKENが表示されるので忘れずにメモしておきます。トークンは悪用されないように他人に教えないでください。
- Botメニューから「Privileged Gateway Intents」セクションの「MESSAGE CONTENT INTENT」にチェックを入れてください。
プロジェクトを作成する
VS Codeで新規プロジェクトを作成します。今回は「discord-bot-test」というフォルダにしています。
- プロジェクトの依存関係を管理しやすくするために、Pythonの仮想環境を作成してアクティベートします。
コマンドを実行すると
venv
フォルダが作成されます。ターミナル# 仮想環境を作成 python3 -m venv venv # 仮想環境をアクティベート source venv/bin/activate
- Discord Botの開発に必要なdiscord.pyをインストールします。ターミナル
# discord.py ライブラリをインストール pip install discord.py
プログラムを作成する
- プロジェクトのルートディレクトリに
.env
を作成します。Discord Botのセットアップ時に取得したトークンを=の右側に指定してください。
.envDISCORD_BOT_TOKEN=あなたが取得したトークン
- python-dotenvをインストールして、
.env
から環境変数を読み込めるようにします。ターミナル# python-dotenv パッケージをインストール pip install python-dotenv
- プロジェクトのルートディレクトリに
bot.py
(任意のファイル名でOK)を作成します。 - 以下のテストコードを記述します。bot.py
from dotenv import load_dotenv import os import discord # .envファイルから環境変数を読み込む load_dotenv() # 環境変数からトークンを取得する TOKEN = os.getenv('DISCORD_BOT_TOKEN') # すべてのイベントに対して反応するIntentsオブジェクトを作成 intents = discord.Intents.default() intents.message_content = True # メッセージの内容を受け取るための権限を付与 # Discordのクライアントを作成 client = discord.Client(intents=intents) @client.event async def on_ready(): print(f'{client.user}としてログインしました') @client.event async def on_message(message): # Bot自身のメッセージには反応しないようにする if message.author.bot: return # 'Botさん、こんにちは!'というメッセージに反応する if message.content == 'Botさん、こんにちは!': # メッセージ送信者の表示名を取得 user_name = message.author.display_name # 応答するメッセージを作成 response = f'こんにちは、{user_name}さん!' await message.channel.send(response) client.run(TOKEN)
DIscordのテストサーバーを作成する
- Discordの左にある+アイコンをクリックします。
- 「オリジナルの作成」を選択します。
- とりあえずサーバーを作成したいだけなので「この質問をスキップ」を選択します。
- テキトーにサーバー名を入れて「新規作成」を押下します。
Botをサーバーに追加する
- Discord Developer Potalにアクセスし、左のメニューから[OAuth2]タブを選択します。
- 「OAuth2 URL Generator」セクションにある「bot」にチェックを入れてスコープに追加します。
- すると下にさらに項目がでてくるので、「BOT PERMISSIONS」セクションで必要な権限にチェックを入れます。
今回は「Read Messages/View Channels」(メッセージを読む/チャンネルを見る)と「Send Messages」(メッセージを送信する)にチェックを入れます。
- 最後に「GENERATED URL」セクションにURLが生成されるので、コピーしてそのURLにアクセスします。
- 「サーバーに追加」の項目に先ほど作成したテストサーバーが出てくるのでそれを選択して、「はい」を選択します。
- 次の項目もそのまま「認証」を押下します。
- Discordを見るとサーバーにBotがやってきました!
動作テストをする
「Botさん、こんにちは!」と送信するとBotが「こんにちは、<ユーザー名>さん!」と返すプログラムを書いたので動作するか確認します。
- VS Codeの画面右上の▷を押下すると、画面下部にターミナルが表示され、ファイルが実行されます。
- Discordに「Botさん、こんにちは!」と送信すると「こんにちは、<ユーザー名>さん!」と返って来ればテスト完了です。