ホームページ > ウェブフロントエンド > jsチュートリアル > node.jsで最初のDiscordボットを構築する方法

node.jsで最初のDiscordボットを構築する方法

Jennifer Aniston
リリース: 2025-02-10 14:20:14
オリジナル
802 人が閲覧しました

node.jsで最初のDiscordボットを構築する方法

今日、ボットはさまざまなタスクの自動化に使用されています。 AmazonのAlexaデバイスがリリースされて以来、周囲の自動化ボットを取り巻く誇大広告は成長し始めました。 Alexaに加えて、DiscordやTelegramのような他のコミュニケーションツールは、カスタムボットを開発するためにAPIを提供します。

この記事は、露出したDiscord APIで最初のボットを作成することにのみ焦点を当てます。たぶん、最も有名なDiscord Botは音楽ボットです。音楽ボットを使用すると、曲名を入力でき、ボットはリクエストされた曲を再生するチャンネルに新しいユーザーを添付します。ゲームやストリーミングサーバーで若い人たちの間で一般的に使用されているボットです。

カスタムの不一致ボットの作成を始めましょう

この記事は2020年に更新されました。詳細なノードを学ぶには、node.js Web開発をチェックしてください。

キーテイクアウト

Discordボットを作成するプロセスには、テストサーバーのセットアップ、認証トークンの生成、アクセス許可の定義、サーバーへのボットの追加、プロジェクトのセットアップ、discord.jsの探索が含まれます。

ボットは、Discord Developers PortalのDiscordアカウントに登録した後、コードを介して制御できます。

discordボットには、メッセージ履歴を読み取り、メッセージを送信するための権限を指定できます。これにより、ボットはチャンネルに送信されたメッセージを読み取ることができます。
    ボットは、特定のコマンドまたはメッセージに応答するようにプログラムできます。たとえば、メッセージに「ping」が含まれている場合、ボットは「ポン」で返信するように設定できます。
  • コマンドハンドラーの使用は、コードの読み取り、デバッグ、整理、維持の難しさなど、「else…if」チェーンに関連する問題を回避するため、大規模なプロジェクトに推奨されます。
  • 前提条件
  • node.js v10以降(基本知識)
  • 端末の使用に関する基本的な知識

ステップ1:テストサーバーのセットアップ

    まず、テストサーバーが必要です。テストサーバーでは、後でDiscordボットをテストできます。画面の左側にあるプラスアイコンをクリックすると、新しいサーバーを作成できます。
  • ポップアップが表示され、サーバーに参加するか、新しいサーバーを作成するかどうかを尋ねます。もちろん、新しいサーバーを作成します

次に、サーバーの名前を入力する必要があります。物事をシンプルに保つために、サーバーdiscord_playgroundと名付けました。必要に応じて、より良いpingを得るために、あなたがどこにいるかに応じてサーバーの場所を変更できます。

すべてがうまくいったら、新しく作成されたサーバーが表示されるはずです。 node.jsで最初のDiscordボットを構築する方法

ステップ2:Auth Tokenの生成

コードを介してボットを制御する場合、最初にボットを不一致アカウントで登録する必要があります。

ボットを登録するには、Discord Developers Portalにアクセスしてアカウントにログインしてください。

ログインした後、ダッシュボードを表示できるはずです。新しいアプリケーションをクリックして、新しいアプリケーションを作成しましょう

ボタン。

次に、アプリケーションの名前を入力するように依頼するポップアップが表示されます。私たちのボットのマイ鉱石ボットと呼びましょう。

createnode.jsで最初のDiscordボットを構築する方法ボタンをクリックすると、DiscordはAPIアプリケーションを作成します。

アプリケーションが作成されたら、新しく作成されたMy-Greeter-Botアプリケーションの概要が表示されます。クライアントIDやクライアントシークレットなどの情報が表示されます。この秘密は、後で承認トークンとして使用されます。

node.jsで最初のDiscordボットを構築する方法

次に、メニューのbot

メニューオプションをクリックします。 DiscordはMy-Greeter-Botアプリケーションを構築し、ボットユーザーを追加します。 node.jsで最初のDiscordボットを構築する方法

ボットが構築されると、カスタムボットの概要が表示されます。 トークンセクションをご覧ください。この承認トークンをコピーして、ボットユーザーに接続するために後で必要になるので、どこかに書き留めます。

node.jsで最初のDiscordボットを構築する方法ステップ3:アクセス許可を定義し、サーバーにボットを追加します

第三に、ボットの権限を定義し、それを不一致サーバーに追加したい。 メニューの下の

oauth2

セクションに移動します。ここでは、ボットのスコープを定義できます。単純なボットを有効にしたいので、node.jsで最初のDiscordボットを構築する方法bot

オプションを選択します。

以下の承認URLが変更されたことに気付くかもしれません。ただし、許可= 0セクションは、まだ権限を設定していないことを示しています。

さらに下にスクロールすると、ボット許可セクションがあります。ボットがメッセージを送信してメッセージ履歴を読むことができるようにしたいと考えています。ユーザーのリクエストを検出できるように、メッセージ履歴を読む許可が必要です。 両方のオプションを選択すると、承認URLのアクセス許可パラメーターに対して番号が変更されていることに注意してください。

最後に、このURLをコピーして、お気に入りのWebブラウザーに貼り付けます。ボットを追加するサーバーを尋ねる概要があります。新しく作成されたdiscord_playgroundを選択しましょう。

[

authorizenode.jsで最初のDiscordボットを構築する方法ボタンをクリックして、ボットをサーバーに追加します。

node.jsで最初のDiscordボットを構築する方法

ボットをサーバーに正常に追加できる場合は、次のサクセス画面が表示されます。

node.jsで最初のDiscordボットを構築する方法

ボットが追加されたことを再確認する場合は、

generalチャンネルに移動します。ボットがチャンネルに参加したことを示す同様のメッセージが表示されます。

node.jsで最初のDiscordボットを構築する方法成功!

ステップ4:プロジェクトのセットアップ

最後に、プロジェクトをセットアップしましょう。 Githubでベースプロジェクトを見つけることができます。 git clone https://github.com/sitepoint-editors/discord-bot-sitepoint。

プロジェクトは、DotenvとDiscord.jsの2つの依存関係に依存します。最初の依存関係により、書き留めたボットトークンを保持する.ENVファイルを使用できます。不一致のボットを開発するために、2番目の依存関係、discord.jsが必要であることは明らかです。

両方の依存関係をインストールするには、プロジェクトフォルダー内にnpmインストールを実行してください。

最後に、インストールを完了するには、プロジェクトのルートに.ENVファイルを作成します。トークンと呼ばれる1つの環境変数をファイルに追加します。

ステップ5:discord.js

の探索

プロジェクトのルートにあるindex.jsファイルを見てみましょう。

<span>TOKEN=my-unique-bot-token
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
最初に、環境.ENVファイルからの構成を要求することで定義した環境変数をロードします。これにより、Process.Env.Tokenで定義したトークン変数を使用できます。上記のスニペットの最後の行は、作成したボットにアクセスするためにトークンをログイン関数に渡す方法を示しています。

ボット変数は、実際に私たちが相互作用する私たちの不一致のクライアントです。

「準備ができた」イベントを聞いてください

<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
次に、イベントを聞くことができます。まず第一に、準備が整ったイベントを聴いています。ボットに接続されると、準備が整ったイベントが発射されます:

適切なトークンを使用してボットにログインした場合、端末はボットbot.user.tagの名前を印刷する必要があります。

端末にnode index.jsを実行するだけでボットを起動できます。このコマンドをプロジェクトのルートで実行していることを確認してください。

ボットが正常に接続されている場合、ターミナルにボットの名前が印刷されているのが表示されます。

bot<span>.on('ready', () => {
</span>  <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>
ログイン後にコピー
ログイン後にコピー
「メッセージ」イベントを聞いてください

ready

イベントに加えて、discordクライアントを使用すると、

メッセージ

イベントを聞くことができます。これは、ボットがチャンネルに送信されるメッセージを読み取ることができることを意味します。許可セクションに戻すには、これがメッセージ履歴を読むためにボットの許可を与える必要がある正確な理由です。
<span>TOKEN=my-unique-bot-token
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

コードをもう少し検討すると、コンテンツpingを含むメッセージを探していることがわかります。 pingを含むだけのメッセージを受け取った場合、ボットはポンで応答します。その後、msg.channel.sendを使用して、再びポンをチャネルに送信します。

両方のコマンド間の違いに注意してください:

    msg.reply:メッセージを送信した最初のユーザーにタグ
  • msg.channel.send:誰にもタグを付けずにチャンネルにメッセージを送信
ノードインデックスでボットを実行して、一般チャネルにメッセージpingを送信してください。同じ結果が表示されているかどうかを確認します。

node.jsで最初のDiscordボットを構築する方法

タグ付きユーザーを探してください

新しいコマンドを追加するには、他の句を持っている句を拡張する必要があります。

kick @usernameのようなメッセージを送信して、誰かをキックしたいとしましょう。だから、最初に私たちが探しています!メッセージのコンテンツをキックします。キックから始まるメッセージが見つかった場合、MSG.mentions.usersプロパティでメッセージにユーザーがタグ付けされたかどうかを確認できます。
<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
タグ付けされているユーザーがいる場合、MSG.mentions.users.first()を使用して最初に言及されたユーザーを選択できます。次に、メッセージにユーザーのユーザー名を使用してチャンネルに返信します。

ステップ6:他の問題の問題…チェーンの場合

node.jsで最初のDiscordボットを構築する方法次に、問題を他のすべてで議論しましょう…声明の場合。メッセージイベントで聞くために定義されたコマンドが少ない場合、コードは非常に読みやすいです。

ただし、このように広範なプロジェクトを構築することにした場合、他の人のチェーンになります。他の人を使用しない理由の小さなリストは次のとおりです。

Spaghettiコードの犠牲になる方が簡単です

コードを読み取るのは難しいです

デバッグ

は簡単ではありません
    コードを整理することは困難です
  • コードが成長するにつれて維持するのは簡単ではありません
  • したがって、使用できるコマンドパターンを見てみましょう。 コマンドハンドラーの実装
  • コマンドハンドラーは、discord.jsパッケージでサポートされているアプローチです。続行する前に、Git Checkout AdvancedでAdvanced Branchをチェックしてください。このブランチは、コマンドハンドラーの実装を保持しています
  • コマンドフォルダー
  • 最初に、コマンドフォルダーを調べてみましょう。このフォルダーには、定義するすべてのコマンドをエクスポートするindex.jsファイルが保持されます。物事をシンプルに保つために、1つのコマンドのみを定義します。

次に、Pingコマンドの実装を見てみましょう。これは基本的に以下を含むオブジェクトをエクスポートします。

  • 名前:コマンド名。
  • 説明:各コマンドの説明を追加するのはベストプラクティスです。
  • 実行:MSGおよびARGS入力を受け入れる関数。この関数は、他の人と同じロジックを保持しています…チェーンの場合。
コマンドのインポート
<span>TOKEN=my-unique-bot-token
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

継続的に、コマンドをindex.jsファイルにインポートしましょう。 Discord Botでコマンドコレクションを定義していることに注意してください。すべてのコマンドをループして、コマンドコレクションに1つずつ追加します。

bot.commands.set関数コマンドの名前とコマンド全体のオブジェクトを受け入れます。

その後、私たちは他のものを削除する必要があります...チェーンを削除し、それをいくつかの動的なコードに置き換えて、呼び出したい正しいコマンドを見つけます:

まず、.split( / /)を使用して、Whitespacesでメッセージのコンテンツを分割しようとします。このargsアレイの最初の項目が私たちのコマンドであると仮定します。コレクションにコマンドが存在するかどうかを確認するには、コレクションはa has()関数を公開します。これは単にtrueまたはfalseを返します。コマンドが存在しない場合、空の応答を返します。
<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ただし、コマンドが存在する場合、get()関数を使用して正しいコマンドを取得し、入力パラメーターmsgとargsで実行します。

Spaghettiコードを書くことなく、コマンドを呼び出しやすく、読みやすく動的な方法です。これにより、必要に応じてプロジェクトを何百ものコマンドにスケーリングできます。 もう一度、コードの新しいバージョンをテストする場合は、Git Checkout Advancedを使用してAdvanced Branchをチェックしてください。次に、npmインストールですべての依存関係をインストールし、ノードindex.jsでボットを起動します。

bot<span>.on('ready', () => {
</span>  <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>
ログイン後にコピー
ログイン後にコピー
ラッピング

新しいDiscordボットのインストールとセットアップは、最初は圧倒的に感じるかもしれません。ただし、discord.jsパッケージによって提供されるAPIは簡単で、Discord Webサイトは素晴らしい例を提供します。 このチュートリアルは2つの許可しかカバーしていないため、さらに多くのことが見つかります。 discordjs.guideのWebサイトでアクセス許可について詳しく知ることができます。

最初の不一致のボットを構築することで幸運を!

ちなみに、

このリンクでSitePointのDiscordコミュニティに参加できます。私たちと一緒にテクノロジーを話しに来てください

node.js

で不一致のボットを構築することについてのよくある質問(FAQ)

不一致ボットにさらに機能を追加するにはどうすればよいですか?

不一致ボットに機能を追加するには、discord.jsライブラリと不一致APIを理解することが含まれます。メッセージの送信、メッセージへの返信、音声チャネルの参加、オーディオの再生などの機能を追加できます。これらを追加するには、イベントを聴き、これらのイベントに基づいてアクションを実行する必要があります。たとえば、ボットにメッセージを送信するには、「メッセージ」イベントと「message.channel.send」メソッドを使用できます。

不一致のボットをデバッグするにはどうすればよいですか?

Discord Botのデバッグには、コンソールを使用してボットの状態とアクションに関する情報を印刷することが含まれます。また、組み込みデバッガーなどのnode.jsデバッグツールや、Visual Studio Codeのデバッガーなどの外部ツールを使用することもできます。さらに、discord.jsライブラリは、「デバッグ」や「警告」などのイベントに、ボットが何をしているのかについての詳細を聞くことができることを提供します。

Discordボットを他のAPIと対話するには、「フェッチ」または「axios」ライブラリを使用してHTTPリクエストを送信することが含まれます。これらのライブラリを使用して、他のAPIからデータを取得し、ボット内のデータを使用できます。たとえば、気象データを取得して不一致チャネルでメッセージとして送信するボットを作成できます。ローカルマシンの代わりにサーバー上。これには、Heroku、AWS、Google Cloudなどのクラウドホスティングプロバイダーを使用できます。これらのプロバイダーを使用すると、24時間年中無休でボットを実行できます。多くの場合、ボットで使用できるデータベースやその他のサービスを提供します。 🎜> Discord Botに特定のコマンドに応答するには、「メッセージ」イベントを聞くことと、メッセージコンテンツが特定のコマンドで始まるかどうかを確認することが含まれます。このために「StartSwith」メソッドを使用できます。メッセージがコマンドで始まる場合、特定のアクションを実行できます。

ボイスチャンネルでDiscord Botを再生するにはどうすればよいですか?音声チャネルには、discord.jsライブラリの「音声」部分を使用することが含まれます。 「JoinVoiceChannel」メソッドを使用して、ボットをボイスチャンネルに結合し、「再生」メソッドを使用してオーディオを再生できます。オーディオはローカルファイル、ストリーム、またはURLにすることができます。 discord.jsライブラリの「messagembed」クラス。新しい埋め込みを作成し、タイトル、説明、色、画像、およびその他のプロパティを設定してから、「message.channel.send」メソッドを使用して送信できます。メッセージに?この方法に絵文字を渡すことができ、ボットはその絵文字でメッセージに反応します。 IDを渡すことでカスタム絵文字を使用したり、Unicode文字を渡すことでデフォルトの絵文字を使用したりできます。 ​​ Discordボットのエラーの処理には、トライ/キャッチブロックを使用して「エラー」イベントを聞くことが含まれます。 TRYブロックでエラーが発生した場合、キャッチブロックが実行されます。 discord.jsライブラリでエラーが発生するたびに「エラー」イベントが放出されます。 MongoDBの「Mongoose」やSQLデータベースに「後遺症」などのデータベースライブラリを使用します。これらのライブラリを使用してデータベースに接続し、モデルを定義し、データを作成、読み取り、更新、削除できます。

以上がnode.jsで最初のDiscordボットを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート