1. はじめに
Discord Botとは?
Discord上で自動的に動作するプログラムのことを指します。
主に定期通知や音楽再生に使われているのを見る方が多いと思います。
本記事の目的
簡単なメッセージを定期的に配信してくれるボットをサーバに実装すること。
動作環境
Python : 3.12.3
pip : 24.1.2
discord.py : 2.4.0
2. 環境の準備
Pythonのインストール
本記事を見られている方は不要な方多いかもしれませんが一応…。
Python.jp から環境に応じてインストールしましょう。
必要なパッケージのインストール
discord.py
discord.py は、Discord上でBotを作成するためのライブラリです。
pip install discord.py
python-dotenv
python-dotenv は、環境変数を管理するためのライブラリです。
無くてもBotの作成はできますが、ソースコードにAPIキーやトークンなどの機密情報を含むのはあまりよろしくないので、.env
ファイルで管理をします。
.env
ファイルに記述された環境変数を読み込み、プログラム内で利用できるように python-dontevを使用します。
pip install python-dotenv
Discord / Discord Developer Portal の用意
こちらの記事(@1ntegrale9 さん)を参考にBotの作成を行いましょう。
以降にアクセストークンが表示されていますが、本記事用に作成したものになります。
本来は他人に見せてはいけないものになるので、取り扱いにはご注意ください。
3. Botの作成
1. Pythonファイルの作成
保存場所、ファイル名は任意でOKです。
このPythonは、1分間に1回時刻を教えてくれるだけの意味のないBotです。
import discord
from discord.ext import commands, tasks
from dotenv import load_dotenv
import os
from datetime import datetime, time
# .envファイルから環境変数を読み込む
load_dotenv()
# ボットのトークンを環境変数から取得
TOKEN = os.getenv('DISCORD_TOKEN')
# Intentsの設定
intents = discord.Intents.default()
intents.message_content = True # メッセージの内容にアクセスするためのIntentを有効にする
# ボットのプレフィックスとインスタンス作成
bot = commands.Bot(command_prefix='!', intents=intents)
# 定期的にメッセージを送信するタスク
@tasks.loop(minutes=1) # 1分ごとに実行
async def send_message():
channel = bot.get_channel(1264943929095225418) # チャンネルIDを指定
if channel:
await channel.send(f"現在は{datetime.now().time()}です。")
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
send_message.start() # タスクを開始
# ボットを起動
bot.run(TOKEN)
2. envファイルを作成する
1で作成したPythonファイルの保存場所と同じディレクトリ上に、.env
ファイルを作成します。
ファイルの中身は以下の通りです。
実際の値は、Discord Developer Portal の Bot > Tokenからトークンを取得して書き換えてください。
DISCORD_TOKEN=MTI2NDk0MzU2NTE2NzkyMzI4Mw.GxCvnH.SR-zble2bH8avXbjdEvCekiG3PDUXInFXnPXEc
Botの起動とテスト
Pythonファイルがあるディレクトリに移動して、以下のコードを実行します。
discordbot.pyの部分は任意のファイル名です。
python discodbot.py
4. まとめ
今回は、簡単なDiscord Botの作成と実行方法を紹介しました。
次のステップとしては、以下のようなことを試してみましょう。
- 機能をもっと追加してみよう
- 今のBotは単純なメッセージ送信しかできません。例えば、ユーザーからのコマンドに反応する機能を追加したり、リアルタイムで情報を取得して表示する機能を試してみると面白いかもしれません。
- エラーが起こったときの対策を考えよう
- 現在のコードにはエラーハンドリングがありません。Botがうまく動かないときに備えて、エラーが起きた時の対処法をコードに追加してみましょう。
- オンラインでBotを運用してみよう
- ローカルでBotが問題なく動くことを確認したら、次はBotをオンラインで常に稼働させる方法を考えましょう。HerokuやAWS、VPSなどでBotをホスティングする方法を学ぶと、より便利になります。
- セキュリティも考えよう
- Botを公開する際はセキュリティも重要です。トークンの取り扱いや環境変数の管理に気を付けて、安全に運用する方法を考えましょう。
これで、Discord Botの基本的な作成とセットアップが完了しました。次に、自分だけのカスタム機能を作ったり、他のサーバーでのBotの利用方法を試してみましょう!