Discord Bot の作り方
[質問]
Discordの公式Botを作り、自分のDiscorサーバーに入れました。このBotは何ができるのですか。
[回答] Gemini
自作Botの導入、おめでとうございます!自分のサーバーに「命」が吹き込まれたようなワクワク感がありますよね。
結論から言うと、そのBotは現時点では「無限の可能性を秘めた、白紙のノート」のような状態です。Discordの公式Bot(Developer Portalで作ったもの)は、あなたがコードを書かない限り、基本的には何もしません。
しかし、プログラミング(PythonやJavaScriptなど)を通じて命令を与えることで、以下のようなことができるようになります。
1. サーバー運営の自動化(管理機能)
多くのユーザーが最初に実装する機能です。
- 自動挨拶: 新しいメンバーが入った時にウェルカムメッセージを送る。
- 荒らし対策: 特定の禁止ワードを検知して削除したり、連投するユーザーを自動でキック・BANする。
- 役職(ロール)付与: メッセージのリアクションを押した人に、自動で特定の役職を付与する。
2. インタラクティブなエンタメ機能
コミュニティを盛り上げるための遊び要素です。
- 独自コマンド:
/omikujiと打つと運勢を返したり、ダイスを振ったりする。 - ゲーム連携: 特定のゲームの戦績を表示したり、サーバー内専用のポイント(通貨)システムを作る。
- 音楽再生: YouTubeなどの音声をボイスチャンネルで流す。
3. 外部情報の取得と通知(API連携)
Discordの外の世界とつなげる機能です。
- 通知ボット: お気に入りの配信者がYouTubeを始めたらチャンネルに通知する。
- AI対話: ChatGPTなどのAPIと連携させて、Botと自然な会話ができるようにする。
- お役立ち情報: 天気予報や最新ニュースを定期的に投稿する。
💡 Botを動かすために必要な3つのステップ
Botを「作成してサーバーに入れた」だけでは、Botのステータスは「オフライン」のままか、オンラインでも反応しないはずです。動かすには以下の準備が必要です。
- 開発環境を整える: パソコンに Python や Node.js などの言語をインストールする。
- コードを書く: 「『こんにちは』と言われたら『こんにちは!』と返す」といったプログラムを書く。
- 実行(ホスティング)する: プログラムを自分のPCやサーバーで動かし続ける(PCを閉じるとBotも寝てしまいます)。
次の一歩として、何に挑戦してみたいですか? もしよろしければ、「Pythonで挨拶するだけの簡単なBotを作ってみたい」や「JavaScriptで役職を配るBotにしたい」など、興味がある方向性を教えていただければ、具体的なコードの書き方をサポートしますよ!
★続き
Pythonで挨拶するだけの簡単なBotを作ってみたい、です
素晴らしいですね!まずは「Botが自分の言葉に反応してくれた!」という感動を味わうのが、開発の第一歩として最高です。
PythonでDiscord Botを作るには、discord.py という定番のライブラリを使うのが最もスムーズです。
1. 準備するもの
まずは、プログラムを動かすための「道具」を揃えましょう。
- Pythonのインストール: 公式サイトからインストールしておいてください。
-
ライブラリのインストール: パソコンのターミナル(コマンドプロンプト)で以下のコマンドを実行します。
-
Botの「Token(トークン)」: 先ほどBotを作成した Discord Developer Portal から、
Botセクションにある Reset Token を押して表示される文字列をコピーしておいてください(※これはBotのパスワードなので、絶対に他人に教えないでください)。
2. 「挨拶Bot」のコード
以下のコードを、例えば main.py という名前で保存してください。
import discord
from discord.ext import commands
# 1. Botの「権限」を設定します(メッセージを読み取るために必要)
intents = discord.Intents.default()
intents.message_content = True
# 2. Botのインスタンスを作成します(コマンドの頭文字を ! に設定)
bot = commands.Bot(command_prefix="!", intents=intents)
# 起動した時に実行されるイベント
@bot.event
async def on_ready():
print(f'ログインしました: {bot.user.name}')
# 「!hello」と打つと反応するコマンド
@bot.command()
async def hello(ctx):
await ctx.send(f'{ctx.author.name}さん、こんにちは!')
# 3. 自分のBotトークンを入れて動かします
bot.run('ここにコピーしたトークンを貼り付け')
3. 動かしてみる
- 保存したファイルがあるフォルダで、ターミナルから
python main.pyを実行します。 - 「ログインしました」と表示されたら成功です!
- Discordサーバーのテキストチャンネルで
!helloと打ってみてください。Botがあなたに挨拶を返してくれます。
⚠️ 注意点:Intent(インテント)の設定
最近のDiscordの仕様で、プログラムを書くだけではメッセージを読み取れないようになっています。
- Developer Portal にログイン。
- 自分のBotを選択し、左メニューの 「Bot」 をクリック。
- 下の方にある 「Message Content Intent」 を ON にして保存してください。
- これを行わないと、Botはコマンドを無視してしまいます。
まずは挨拶ができるようになりましたね! 次は、「特定の言葉(例えば『お疲れ様』)に自動で反応するようにしたい」ですか?それとも「ランダムにおみくじの結果を返すようにしたい」ですか?やってみたいことがあれば教えてください!