こんにちは。Tomoyuki(@tomoyuki65)です。
最近ちょっとだけですがDiscord用のBotの作り方を調べる機会があり、ローカル環境でのボットの作り方について理解が深まりました。
そこでこの記事では、Discord Botの作り方についてまとめます。
目次
Discord Botの作成方法まとめ【ローカル環境でのボットの作り方】
Botの作成方法
ここからはDiscordのアカウントおよび、Botを招待するサーバーは作成済みということを前提として話を進めます。
まずはブラウザからDiscordのWeb版にアクセスしてログインし、その後「https://discord.com/developers/applications」にアクセスして下さい。
アクセス後、画面右上の「New Application」をクリックします。
次にポップアップが表示されるので、アプリ(Bot)の名前を入力し、規約に関するチェックを付けた後、画面右下の「Create」をクリックします。
これでアプリが作成されます。
次に画面左のメニューから「Bot」をクリックし、Build-A-Botの右側にある「Add Bot」をクリックします。
次にポップアップが表示されるので、「Yes, do it!」をクリックします。
これでBotが作成されます。この画面からBotのアイコンを変更できるほか、画面中央の「Copy」をクリックすると、Botのトークン値(アクセスキー)をコピーできます。
※トークン値は他人に共有しないようにご注意下さい。
続けて、画面下にあるPrivileged Gateway Intentsにある3つの項目(PRESENCE INTENT、SERVER MEMBERS INTENT、MESSAGE CONTENT INTENT)について、全て有効化します。
※全て有効化しないとBotが起動しませんでした。
次に画面左のメニューから「OAuth2>URL Generator」をクリックします。
次にSCOPESの項目にある「bot」にチェックを付けます。
チェックを付けると権限付与画面が表示されるので、Botに付与する権限にチェックを付けます。
今回は簡単な例として、「Read Messages\View Channels」(メッセージを読み込む)と「Send Messages」(メッセージを送信する)にだけチェックを付けます。
チェックを付けた後、画面右下にある「Copy」をクリックすると、Bot招待用のURLをコピーできます。
BotをDiscordサーバーへの招待方法
次にブラウザから上記でコピーしたBot招待用のURLにアクセスします。
そして外部アプリケーションの連携画面が表示されるので、Botを招待したいサーバーを選択後、画面右下の「はい」をクリックします。
続けて、画面右下の「認証」をクリックします。
続けて、「私は人間です」にチェックを付けます。
これでBotの認証が完了です。
上記で選択したサーバーを確認すると、テキストチャンネルに「〜がやってきました。」のメッセージが表示され、Botが連携されます。
ローカル環境でBot用のファイル作成方法
ここからはMacでpython3、pip3、VScodeなどのテキストエディタ、ターミナルを使える前提で話を進めます。
例えばMacなら最初からpython3(pip3)がインストールされていると思うので、ターミナルから以下のコマンドを実行してバージョンを確認してみて下さい。
$ python3 -V
$ pip3 -V
※それぞれバージョンが表示されればOKですが、インストールされていない場合はHomebrewから「pyenv」などをインストールして使えるようにして下さい。
次に以下のコマンドを実行し、Discord Bot用のパッケージ「discord.py」と、ローカルで環境変数用のファイル「.env」を使えるようにするためのパッケージをインストールします。
$ pip3 install discord.py
$ pip3 install python-dotenv
次に以下のコマンドを実行し、ファイルを置くための作業ディレクトリを作成します。
※ディレクトリ名は例として、「discord_bot」とします。
$ mkdir discord_bot
次に以下のコマンドを実行し、作業ディレクトリに移動した後に環境変数用のファイル「.env」と、Discord Bot用のファイル「main.py」を作成します。
$ cd discord_bot
$ touch .env
$ touch main.py
次にテキストエディタで作業ディレクトリを開き、上記でメモしておいたDiscord Bot接続用のトークン値(アクセスキー)を、環境変数「TOKEN」として.envファイルに記述します。
次にmain.pyにはBotにさせたい処理を記述しますが、今回は以下を例とします。
# discord.pyをインポート
import discord
# .envファイルからTOKENの値を読み込み
import os
from dotenv import load_dotenv
load_dotenv()
# 初期化
client = discord.Client(intents=discord.Intents.all())
# Botが正常に起動した際のイベント設定
@client.event
async def on_ready():
print('Startup Success!!!')
# Botがメッセージを読み込んだ際のイベント設定
@client.event
async def on_message(message):
# Botが出力したメッセージじゃ無い場合(この条件でBotのメッセージを弾く)
if not message.author.bot:
# 入力されたメッセージが「はじめまして」ならBotが「よろしくおねがいします」と出力する設定
if message.content == 'はじめまして':
await message.channel.send('よろしくおねがいします')
# 上記と同様に2個目の設定
if message.content == 'さようなら':
await message.channel.send('またあいましょう')
# TOKENの値を読み込み、Botを起動させる
client.run(os.getenv('TOKEN'))
※テキストチャンネルに「はじめまして」と入力されたらBotが「よろしくおねがいします」を出力し、「さようなら」と入力されたらBotが「またあいましょう」を出力する処理になっています。
Botの起動確認
上記でBot用のファイルが作成できたので、以下のコマンドを実行し、Discord Botを起動させます。
$ python3 main.py
Botが正常に起動すると、下図のようにmain.pyで設定した起動メッセージが表示されます。
※起動させたファイルを停止させたい場合は、ショートカットキー「control + c」を入力します。また、main.pyの修正後は、ファイルを再起動して下さい。
これでDiscord Botが起動したので、動作確認してみます。
Discordのテキストチャンネルを開き、「はじめまして」と入力して下さい。
するとBotが「よろしくおねがいします」と出力します。
次に「さようなら」と入力します。
するとBotが「またあいましょう」と出力します。
これでDiscord Botの起動確認は完了です。後はBotにやらせたいことをmain.pyに記述すれば、お好みのBotにカスタマイズできます。
Discordに招待したBotの権限を変更したい場合
Botにやらせたい処理に応じて、権限の付与が必要になります。Discordに招待したBotの権限を変更したい場合は、招待したサーバーの設定から行います。
変更するにはまず、Discordの画面左上にあるメニューボタン「∨」をクリックします。
次にサーバーメニューから「サーバー設定」をクリックします。
次にメニューから「ロール」をクリックし、Bot用のロールの編集ボタンをクリックします。
これでロール編集画面が表示されるので、権限タブをクリックし、必要な権限を付与して下さい。
最後に
今回はDiscord Botの作成方法についてまとめました。
今回の例でDiscord Botを作成するための基本的な部分は押さえられたのではと思います。
後はBotにやらせたい処理に応じてmain.pyを修正するのと、main.pyを常時起動させられるようなサーバー関連のサービスがあれば、常時運用も可能です。
ということで、これからDiscord Botの作成をしたいと思っていた方がいたら、今回ご紹介した例をぜひ参考にしてみて下さい。
Tomoyuki
最新記事 by Tomoyuki (全て見る)
- Go言語(Golang)専門の技術ブログ「Golang-Tech」を開設!? - 2024年9月26日
- 【2024年】モンハンワイルズの推奨スペックとおすすめのゲーミングPCを紹介! - 2024年9月26日
- 37歳Web系エンジニア3年目。生成AI(ChatGPT・Gemini)現る。 - 2024年7月3日
コメントを残す