コンテンツにスキップ

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のステータスは「オフライン」のままか、オンラインでも反応しないはずです。動かすには以下の準備が必要です。

  1. 開発環境を整える: パソコンに Python や Node.js などの言語をインストールする。
  2. コードを書く: 「『こんにちは』と言われたら『こんにちは!』と返す」といったプログラムを書く。
  3. 実行(ホスティング)する: プログラムを自分のPCやサーバーで動かし続ける(PCを閉じるとBotも寝てしまいます)。

次の一歩として、何に挑戦してみたいですか? もしよろしければ、「Pythonで挨拶するだけの簡単なBotを作ってみたい」「JavaScriptで役職を配るBotにしたい」など、興味がある方向性を教えていただければ、具体的なコードの書き方をサポートしますよ!

★続き

Pythonで挨拶するだけの簡単なBotを作ってみたい、です

素晴らしいですね!まずは「Botが自分の言葉に反応してくれた!」という感動を味わうのが、開発の第一歩として最高です。

PythonでDiscord Botを作るには、discord.py という定番のライブラリを使うのが最もスムーズです。


1. 準備するもの

まずは、プログラムを動かすための「道具」を揃えましょう。

  • Pythonのインストール: 公式サイトからインストールしておいてください。
  • ライブラリのインストール: パソコンのターミナル(コマンドプロンプト)で以下のコマンドを実行します。

    pip install discord.py
    

  • 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. 動かしてみる

  1. 保存したファイルがあるフォルダで、ターミナルから python main.py を実行します。
  2. 「ログインしました」と表示されたら成功です!
  3. Discordサーバーのテキストチャンネルで !hello と打ってみてください。Botがあなたに挨拶を返してくれます。

⚠️ 注意点:Intent(インテント)の設定

最近のDiscordの仕様で、プログラムを書くだけではメッセージを読み取れないようになっています。

  1. Developer Portal にログイン。
  2. 自分のBotを選択し、左メニューの 「Bot」 をクリック。
  3. 下の方にある 「Message Content Intent」ON にして保存してください。
  4. これを行わないと、Botはコマンドを無視してしまいます。

まずは挨拶ができるようになりましたね! 次は、「特定の言葉(例えば『お疲れ様』)に自動で反応するようにしたい」ですか?それとも「ランダムにおみくじの結果を返すようにしたい」ですか?やってみたいことがあれば教えてください!