今日、ボットはさまざまなタスクの自動化に使用されています。 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を得るために、あなたがどこにいるかに応じてサーバーの場所を変更できます。
すべてがうまくいったら、新しく作成されたサーバーが表示されるはずです。
ステップ2:Auth Tokenの生成
コードを介してボットを制御する場合、最初にボットを不一致アカウントで登録する必要があります。
ボットを登録するには、Discord Developers Portalにアクセスしてアカウントにログインしてください。ログインした後、ダッシュボードを表示できるはずです。新しいアプリケーションをクリックして、新しいアプリケーションを作成しましょう
ボタン。次に、アプリケーションの名前を入力するように依頼するポップアップが表示されます。私たちのボットのマイ鉱石ボットと呼びましょう。
createボタンをクリックすると、DiscordはAPIアプリケーションを作成します。
アプリケーションが作成されたら、新しく作成されたMy-Greeter-Botアプリケーションの概要が表示されます。クライアントIDやクライアントシークレットなどの情報が表示されます。この秘密は、後で承認トークンとして使用されます。
メニューオプションをクリックします。 DiscordはMy-Greeter-Botアプリケーションを構築し、ボットユーザーを追加します。
ボットが構築されると、カスタムボットの概要が表示されます。 トークンセクションをご覧ください。この承認トークンをコピーして、ボットユーザーに接続するために後で必要になるので、どこかに書き留めます。
ステップ3:アクセス許可を定義し、サーバーにボットを追加します
第三に、ボットの権限を定義し、それを不一致サーバーに追加したい。
セクションに移動します。ここでは、ボットのスコープを定義できます。単純なボットを有効にしたいので、bot
以下の承認URLが変更されたことに気付くかもしれません。ただし、許可= 0セクションは、まだ権限を設定していないことを示しています。
さらに下にスクロールすると、ボット許可セクションがあります。ボットがメッセージを送信してメッセージ履歴を読むことができるようにしたいと考えています。ユーザーのリクエストを検出できるように、メッセージ履歴を読む許可が必要です。 両方のオプションを選択すると、承認URLのアクセス許可パラメーターに対して番号が変更されていることに注意してください。
最後に、このURLをコピーして、お気に入りのWebブラウザーに貼り付けます。ボットを追加するサーバーを尋ねる概要があります。新しく作成されたdiscord_playgroundを選択しましょう。[
authorizeボタンをクリックして、ボットをサーバーに追加します。
ボットをサーバーに正常に追加できる場合は、次のサクセス画面が表示されます。
generalチャンネルに移動します。ボットがチャンネルに参加したことを示す同様のメッセージが表示されます。
成功!
ステップ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:誰にもタグを付けずにチャンネルにメッセージを送信
新しいコマンドを追加するには、他の句を持っている句を拡張する必要があります。
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:他の問題の問題…チェーンの場合
次に、問題を他のすべてで議論しましょう…声明の場合。メッセージイベントで聞くために定義されたコマンドが少ない場合、コードは非常に読みやすいです。
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文字を渡すことでデフォルトの絵文字を使用したりできます。
以上がnode.jsで最初のDiscordボットを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック









