導入
このチュートリアルでは、LinuxサーバーでDiscordボットを実行する方法を説明します。Discordボットは、友達と楽しみながらWebとバックエンド開発の基礎を学ぶのに最適な方法です。最近、Discordが一般公開されたことで、Discordボットの構築と実行方法を学ぶことは、楽しい副業にもなり得ます。Discordボットの構築は難しくありませんが、Discordボットを安全かつ正常に動作させるには、いくつかの特定の手順に従う必要があります。.
Discordボットはコードを実行し、Discordサーバーと非常に複雑なやり取りを行えるため、サーバー上にホストする必要があります。インターネット上でDiscordボットをホストする有料サービスを利用することもできますが、ここで紹介するチュートリアルを活用すれば、自分でDiscordボットをホストする方がはるかに簡単になります。.
このチュートリアルでは、Pythonとdiscord.pyライブラリを使用します。Discordボットは主にPython(discord.pyライブラリ)またはJavaScript(discord.jsライブラリ)で記述されており、どちらもその言語で記述された他のすべてのライブラリと連携できる優れたエコシステムです。そのため、ほとんどの手順はどちらの言語でも同じです(言語固有の手順を除く)。しかし、Pythonライブラリの方が使い始めるのが簡単なため、このチュートリアルではPythonライブラリを選択しました。.
このライブラリの Discord ボットの例は、discord.py ライブラリで最も重要なコマンドのいくつかを紹介するシンプルなスペル修正ボットです。.
前提条件
- VPSまたは仮想プライベートサーバー
ユーザー数が少ない場合やボットが単純なタスクを実行する場合は、ハードウェア要件はほとんどなく、Python を実行できれば十分です。.
- 任意の 64 ビット Linux オペレーティング システム (x86-64 または Arm64)
このチュートリアルでは、Ubuntu を実行していることを前提としていますが、若干の変更を加えることで、他の Linux ディストリビューションや Windows でも同じ手順が機能します。.
- 管理者権限を持つ Discord サーバーの Discord アカウント。.
Pythonの基礎または中級レベルの知識
ステップ1 – 仮想環境をセットアップする
始める前に、virtualenvと呼ばれるPython仮想環境を使用することをお勧めします。virtualenvを使用すると、各プロジェクトに特定のバージョンのライブラリをそのプロジェクト専用に使用できるため、特定のバージョンのライブラリを必要とするプロジェクト間の非互換性を回避できます。Pythonで動作するDiscordボットには、この環境を強くお勧めします。ボットが常に動作することを保証し、別のサーバーに簡単に移行できるためです。.
Linux でターミナルを開くか、SSH (セキュア シェル) 経由でサーバーに接続し、次のコマンドを実行します。
apt update && apt install python3.10-venv
mkdir discord-bot && cd discord-bot/
python3 -m venv discord-bot-env
source discord-bot-env/bin/activateこれにより、仮想環境の作成に必要なPythonパッケージがインストールされ、Discordボット用のディレクトリが作成され、Python仮想環境が有効化されます。ターミナルは以下のようになっているはずです。 (discord-bot-env) ユーザー名が表示される前に、discord.pyライブラリをインストールしてください。.
python3 -m pip install --upgrade discord.pyمرحله 2 – ربات خود را با Discord ثبت کنید
スクリプトを実行する前に、DiscordボットをDiscord本体に登録し、ボットがDiscordの認証に使用するトークンを取得する必要があります。これは簡単ですが、少し時間がかかります。以下の手順に従ってください。
1_Webブラウザを開きます。.
2_Discordサイトにログインします。.
3_Discord 開発者ポータルにアクセスします。.
4_新しいアプリケーションをクリックします。.
5_「アプリケーションの作成」セクションで、ボットに名前を付けます。.
6_ボットをクリックして、ボット セクションに移動します。.
7_「パブリックボット」が選択され、「OAuth2コード付与が必要」が選択されていないことを確認します。.
8_「トークンをリセット」をクリックし、トークンを書き留めてください。このトークンを紛失しないようにご注意ください。紛失した場合は、もう一度ボタンをクリックして新しいトークンを取得し、コード内のトークンを新しいトークンに更新する必要があります。.
9_下にスクロールしてセクション全体を読んでください。«特権ゲートウェイインテント» オンにします。これでボットが機能するようになります。ボットにはまだコードがないため、100台を超えるサーバーの条件は適用されません。.
10_OAuth2セクションに移動し、URLジェネレーターのサブセクションに進みます。このURLを使用すると、あなただけでなく、ボットを使いたい他のユーザーは、ボットに必要な権限と機能だけを設定して、簡単にサーバーにボットを追加できます。.
11_「スコープ」セクションで、「ボット」をクリックします。.
12_「«ボットの権限»」をクリックし、必要なボットに許可するすべての権限をクリックします。これは、ボットに許可したい機能によって異なります。この例のシンプルなボットの場合、以下の権限で十分です。.
13_「生成されたURL」セクションで、「コピー」をクリックします。.
14_この URL を検索バーに入力してリンクに移動します。.
15_ボットの機能に関する情報を読み、サーバーに追加します。ボットは管理者権限を持つサーバーにのみ追加できます。.
16_ロイ“続く”"クリック"
17_追加先のサーバーでボットに付与する権限を選択します。ボットが完全に機能する範囲内で、最小限の権限を付与するようにしてください。ボットに余分な権限を付与すると、ボットトークンが盗まれた場合にセキュリティリスクが生じる可能性があります。.
ステップ3 - ボットコードを書く
ボットがDiscordに登録されたので、次はコードを記述する必要があります。幸いなことに、シンプルなDiscordボットの作成は簡単で、discord.pyファイルが最適です。.
「ステップ1」でコマンドを実行したのと同じフォルダに、 discord_bot_script.py お好みのテキストエディタで作成してください。この例ではnanoを使用します。.
nano discord_bot_script.py次のコードをコピーして貼り付け、最後の行のトークンを独自のトークンに置き換えます。
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
words = [["youre", "you're"], ["im", "i'm"], ["Im", "I'm"], ["hes", "he's"], ["shes", "she's"]]
@client.event
async def on_ready():
print("Bot successfully logged in as " + client.user)
@client.event
async def on_message(message):
if message.author == client.user:
return
for word in words:
if word[0] in message.content:
await message.channel.send(str(message.author) + ", you misspelled " + word[1] + " as " + word[0], reference=message)
client.run('<YOUR-TOKEN-HERE>')من خط به خط نمیروم، اما این ربات ساده بیشتر آنچه را که برای شروع ایجاد رباتهای Discord خود در پایتون باید بدانید را نشان میدهد. با اعلام مقاصد شروع می شود، که اساساً فیلترهایی هستند که ربات شما برای قضاوت در مورد رویدادهایی که ثبت می کند و به آنها پاسخ می دهد استفاده می کند. برای مثال، اگر یک ربات غلطگیر املا دارید، فقط به رویدادهای پیام پاسخ میدهید، اما رویدادهایی مانند پیوستن افراد به سرور یا انجام بازیهای خاص را نادیده میگیرید. میتوانید در صفحه مستندات discord.py درباره مقاصد بیشتر بخوانید.
準備完了ボット スクリプトがロードされ、ボットがサーバーに接続するときです。.ON_MESSAGEボットが接続しているサーバー上で誰かが新しいメッセージを書き込んだときに発生します。このイベントには、メッセージの内容とメタデータを関数に渡す引数もあります。.
機能については 準備完了このコードは、ボットにターミナルにメッセージを書き込むだけのものです。開発中にイベントを記録するには、print関数を使用することができます。.
機能については on_messageまず、コードはメッセージの送信者がボット自身かどうかを確認し、そうであれば関数から戻ります。この確認を行わないと、ボットは誤ってループに陥り、自身のメッセージに永遠に返信し続ける可能性があります。次に、コードはリスト内の単語のいずれかが受信メッセージに含まれているかどうかを確認します。含まれている場合は、send関数を使用して送信されたメッセージに返信します。これはdiscord.pyで最も重要かつ強力な関数の1つであり、その潜在能力を最大限に活用することで、興味深く複雑なボットを構築できるようになります。.
ボットを作成したので、コードを保存し、次の関数を使用して実行します。
python3 discord_bot_script.py

















