目次
ステップ1:テストサーバーのセットアップ
ステップ2:Auth Tokenの生成
ボット変数は、実際に私たちが相互作用する私たちの不一致のクライアントです。
不一致ボットにさらに機能を追加するにはどうすればよいですか?
不一致のボットをデバッグするにはどうすればよいですか?
Discordボットを他のAPIと対話するには、「フェッチ」または「axios」ライブラリを使用してHTTPリクエストを送信することが含まれます。これらのライブラリを使用して、他のAPIからデータを取得し、ボット内のデータを使用できます。たとえば、気象データを取得して不一致チャネルでメッセージとして送信するボットを作成できます。ローカルマシンの代わりにサーバー上。これには、Heroku、AWS、Google Cloudなどのクラウドホスティングプロバイダーを使用できます。これらのプロバイダーを使用すると、24時間年中無休でボットを実行できます。多くの場合、ボットで使用できるデータベースやその他のサービスを提供します。 🎜> Discord Botに特定のコマンドに応答するには、「メッセージ」イベントを聞くことと、メッセージコンテンツが特定のコマンドで始まるかどうかを確認することが含まれます。このために「StartSwith」メソッドを使用できます。メッセージがコマンドで始まる場合、特定のアクションを実行できます。
ホームページ ウェブフロントエンド jsチュートリアル node.jsで最初のDiscordボットを構築する方法

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

Feb 10, 2025 pm 02:20 PM

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptは学ぶのが難しいですか? JavaScriptは学ぶのが難しいですか? Apr 03, 2025 am 12:20 AM

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? Apr 04, 2025 pm 02:06 PM

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...

See all articles