Discordで「おはよう」と誰かが投稿したら、Botが自動で「おはようございます!」と返信してくれたら、サーバーがもっと楽しくなりますよね。この記事では、プログラミング初心者の方でも簡単に実装できるように、特定のキーワードに反応して自動でメッセージを返すDiscord Botの作り方を、ステップバイステップで解説します。
準備するもの
- Python環境
PCにPythonがインストールされている必要があります。 - discord.pyライブラリ
- BOTトークン
Discord Developer Portalで自分のBotを作成し、トークンを取得します。
Python環境の構築、BOTトークンの取得方法は以下の記事で紹介しています。
1.実行ファイルの作成
今回はWindows11環境でのセットアップ解説です。
エクスプローラーを開き、任意のフォルダを作りましょう。
ユーザーフォルダの直下がおすすめです。

フォルダを開いて、新規作成>テキストドキュメントを作成します。
ファイル名もわかりやすいもので構いません。(今回はreturnとしています)

ダブルクリックをするとメモ帳が開きます。
以下のソースコードをコピー&ペーストしてください。
最初の方にあるTOKEN = ‘あなたのBOTトークン’の部分を、ご自身で取得したトークンに書き換えて保存してください。
import discord
# Botのアクセストークン
TOKEN = 'あなたのBOTトークン'
# 接続に必要なオブジェクトを生成
# メッセージの内容を取得するインテントを有効にする
intents = discord.Intents.default()
intents.message_content = True
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
# 「おはよう」というメッセージに反応する
if message.content == 'おはよう':
# メッセージが送られてきたチャンネルに「おはようございます!」と返信する
await message.channel.send('おはようございます!')
# 「おやすみ」というメッセージに反応する
if 'おやすみ' in message.content:
# メッセージが送られてきたチャンネルにリアクションをつける
await message.add_reaction('😴')
# Botの起動と接続
client.run(TOKEN)
エクスプローラーに戻り、
表示>表示>ファイル名拡張子にチェックを入れてください。

名前の変更でtxt部分をpyに変えてください。
これでPythonのファイルになります。

2.discord.pyライブラリのインストール
画面左下のWindowsスタートボタンを押し、キーボードで「cmd」と入力します。表示された「コマンド プロンプト」をクリックして起動してください。

黒い画面が表示されたら、以下のコマンドを入力し、Enter
キーを押します。
pip install discord.py

3.ファイルの実行
いよいよファイルの実行です。
先ほど作成したpyファイルをダブルクリックで実行しましょう!

「〇〇としてログインしました」と表示されたら成功です!
4.Botをサーバーに追加する
Discord Developer PortalでBotを選択したページで表示される、APPLICATION IDというものを控えてください。

以下のURLのAPPLICATION IDの箇所を控えた数字と置き換えてください。
https://discord.com/oauth2/authorize?client_id=APPLICATION ID&permissions=67584&integration_type=0&scope=bot
できたURLにアクセスするとDiscordでBot追加のページが立ち上がります。

5.Botを使ってみよう
追加したサーバーに「おはよう」と送ってみましょう!

Botから「おはようございます!」と返ってきましたね!!
次に「そろそろおやすみ」と送ってみましょう!

Botから😴のリアクションがきましたね!
Botを停止したい場合は、ターミナルで Ctrl + C
を押してください。
コードの解説
先ほどのコードの解説をしていきます。
import discord
discord.pyライブラリをインポート(使えるように)します。
TOKEN
あなたのトークンです。
intents = discord.Intents.default()
Botがサーバーからどのような情報を受け取るかを設定する「インテント」を準備します。
intents.message_content = True
Botがメッセージの内容を読み取れるように、インテントを有効化します。これがFalse
のままだと、メッセージの内容が取得できず、キーワードに反応できません。
client = discord.Client(intents=intents)
上記で設定したインテントを適用して、Discordに接続するためのクライアントオブジェクトを作成します。
@client.event
Botで何かイベント(例: 起動、メッセージ受信)が発生したときに実行する処理を定義するためのものです。
async def on_ready():
BotがDiscordに正常に接続し、起動したときに一度だけ実行される処理です。ここでは、ターミナルに「ログインしました」と表示させて、正常に起動したことを確認できるようにしています。
async def on_message(message):
サーバーで誰かがメッセージを送信するたびに実行される、このBotのメインとなる処理です。引数の message
には、送信されたメッセージの情報(内容、送信者、チャンネルなど)がすべて入っています。
if message.author.bot:
メッセージの送信者がBot自身だった場合に、それ以降の処理を行わないようにしています。これがないと、Botが自分のメッセージに無限に反応し続けてしまう「無限ループ」が発生します。
if message.content == ‘おはよう’:
受信したメッセージの内容 (message.content
) が、「おはよう」という文字列と完全に一致した場合に、次の処理に進みます。
await message.channel.send(‘おはようございます!’)
メッセージが送信されたチャンネル (message.channel
) に、「おはようございます!」という文字列を送信します。
if ‘おやすみ’ in message.content:
メッセージの内容に「おやすみ」という文字列が含まれている場合に反応します。例えば「そろそろおやすみ」にも反応します。
await message.add_reaction(‘😴’)
メッセージに対して、絵文字でリアクションをつけます。
client.run(TOKEN)
設定したトークンを使って、Botを起動します。
まとめ
お疲れ様でした!特定の言葉に反応するBotを作れましたね!
応用してあなただけのBotを作ってみてくださいね!!
コメント