今日、ボットはさまざまなタスクの自動化に使用されています。 AmazonのAlexaデバイスがリリースされて以来、周囲の自動化ボットを取り巻く誇大広告は成長し始めました。 Alexaに加えて、DiscordやTelegramのような他のコミュニケーションツールは、カスタムボットを開発するためにAPIを提供します。
この記事は、露出したDiscord APIで最初のボットを作成することにのみ焦点を当てます。たぶん、最も有名なDiscord Botは音楽ボットです。音楽ボットを使用すると、曲名を入力でき、ボットはリクエストされた曲を再生するチャンネルに新しいユーザーを添付します。ゲームやストリーミングサーバーで若い人たちの間で一般的に使用されているボットです。カスタムの不一致ボットの作成を始めましょう
この記事は2020年に更新されました。詳細なノードを学ぶには、node.js Web開発をチェックしてください。キーテイクアウト
Discordボットを作成するプロセスには、テストサーバーのセットアップ、認証トークンの生成、アクセス許可の定義、サーバーへのボットの追加、プロジェクトのセットアップ、discord.jsの探索が含まれます。すべてがうまくいったら、新しく作成されたサーバーが表示されるはずです。
コードを介してボットを制御する場合、最初にボットを不一致アカウントで登録する必要があります。
ボットを登録するには、Discord Developers Portalにアクセスしてアカウントにログインしてください。ログインした後、ダッシュボードを表示できるはずです。新しいアプリケーションをクリックして、新しいアプリケーションを作成しましょう
ボタン。次に、アプリケーションの名前を入力するように依頼するポップアップが表示されます。私たちのボットのマイ鉱石ボットと呼びましょう。
createボタンをクリックすると、DiscordはAPIアプリケーションを作成します。
アプリケーションが作成されたら、新しく作成されたMy-Greeter-Botアプリケーションの概要が表示されます。クライアントIDやクライアントシークレットなどの情報が表示されます。この秘密は、後で承認トークンとして使用されます。
メニューオプションをクリックします。 DiscordはMy-Greeter-Botアプリケーションを構築し、ボットユーザーを追加します。
ボットが構築されると、カスタムボットの概要が表示されます。 トークンセクションをご覧ください。この承認トークンをコピーして、ボットユーザーに接続するために後で必要になるので、どこかに書き留めます。
ステップ3:アクセス許可を定義し、サーバーにボットを追加します
第三に、ボットの権限を定義し、それを不一致サーバーに追加したい。
セクションに移動します。ここでは、ボットのスコープを定義できます。単純なボットを有効にしたいので、bot
さらに下にスクロールすると、ボット許可セクションがあります。ボットがメッセージを送信してメッセージ履歴を読むことができるようにしたいと考えています。ユーザーのリクエストを検出できるように、メッセージ履歴を読む許可が必要です。 両方のオプションを選択すると、承認URLのアクセス許可パラメーターに対して番号が変更されていることに注意してください。
最後に、このURLをコピーして、お気に入りのWebブラウザーに貼り付けます。ボットを追加するサーバーを尋ねる概要があります。新しく作成されたdiscord_playgroundを選択しましょう。[
authorizeボタンをクリックして、ボットをサーバーに追加します。
ボットをサーバーに正常に追加できる場合は、次のサクセス画面が表示されます。
generalチャンネルに移動します。ボットがチャンネルに参加したことを示す同様のメッセージが表示されます。
成功!
ステップ4:プロジェクトのセットアップ
両方の依存関係をインストールするには、プロジェクトフォルダー内にnpmインストールを実行してください。
最後に、インストールを完了するには、プロジェクトのルートに.ENVファイルを作成します。トークンと呼ばれる1つの環境変数をファイルに追加します。
ステップ5:discord.js
の探索プロジェクトのルートにあるindex.jsファイルを見てみましょう。
<span>TOKEN=my-unique-bot-token </span>
「準備ができた」イベントを聞いてください
<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を使用して、再びポンをチャネルに送信します。
両方のコマンド間の違いに注意してください:
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>
ステップ6:他の問題の問題…チェーンの場合
次に、問題を他のすべてで議論しましょう…声明の場合。メッセージイベントで聞くために定義されたコマンドが少ない場合、コードは非常に読みやすいです。
コードを読み取るのは難しいです
デバッグ
は簡単ではありません次に、Pingコマンドの実装を見てみましょう。これは基本的に以下を含むオブジェクトをエクスポートします。
<span>TOKEN=my-unique-bot-token </span>
その後、私たちは他のものを削除する必要があります...チェーンを削除し、それをいくつかの動的なコードに置き換えて、呼び出したい正しいコマンドを見つけます:
まず、.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>
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 Botを再生するにはどうすればよいですか?音声チャネルには、discord.jsライブラリの「音声」部分を使用することが含まれます。 「JoinVoiceChannel」メソッドを使用して、ボットをボイスチャンネルに結合し、「再生」メソッドを使用してオーディオを再生できます。オーディオはローカルファイル、ストリーム、またはURLにすることができます。 discord.jsライブラリの「messagembed」クラス。新しい埋め込みを作成し、タイトル、説明、色、画像、およびその他のプロパティを設定してから、「message.channel.send」メソッドを使用して送信できます。メッセージに?この方法に絵文字を渡すことができ、ボットはその絵文字でメッセージに反応します。 IDを渡すことでカスタム絵文字を使用したり、Unicode文字を渡すことでデフォルトの絵文字を使用したりできます。
以上がnode.jsで最初のDiscordボットを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。