Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Building a Bot With Discord.js

2025年09月30日に「Dev.to」が公開したITニュース「Building a Bot With Discord.js」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Discord.jsとNode.js、JavaScriptを活用し、Discordボットを構築する手順を解説。開発者ポータルでの設定から、必要なファイルの作成、Discord.jsの導入、クライアントの初期化、テキストコマンドの処理方法、ボットの実行、そしてサーバーへの招待までを網羅。コマンドに反応するボットが作れる。

出典: Building a Bot With Discord.js | Dev.to公開日:

ITニュース解説

Discord BotをNode.jsとDiscord.jsを使って構築する手順について解説する。Discord Botとは、Discord上で自動的に動作し、ユーザーのコマンドに応答したり、特定のタスクを実行したりするプログラムのことである。この解説を通じて、簡単なテキストコマンドに応答するBotを開発し、さらに複雑な機能を実装するための基礎的な知識を得られるだろう。

Bot開発にはいくつかの準備が必要だ。まず、コンピュータにNode.jsがインストールされている必要がある。Node.jsは、通常ウェブブラウザで動作するJavaScriptを、コンピュータ上で単独のプログラムとして実行するための環境である。これにより、ウェブサーバーの構築や、今回のようなDiscord Botの開発が可能になる。また、JavaScriptとNode.jsの基本的な知識があれば、コードの内容をより深く理解できるだろう。さらに、Discordアカウントを持ち、二段階認証を有効にしておくこと、そしてBotを招待するための管理者権限を持つDiscordサーバーを用意する必要がある。

続いて、Discordの開発者ポータルでBotのアプリケーションを作成する。ウェブブラウザで開発者ポータルにアクセスし、新しいアプリケーションを作成し、任意の名前を付ける。作成したアプリケーションの中から「Bot」の項目を選び、「Add Bot」をクリックしてBotユーザーを追加する。ここで表示される「トークン」は、BotがDiscordにログインするための非常に重要な秘密の鍵となる。このトークンは絶対に他人に見せてはならず、公開リポジトリなどにコミットしてはいけない。万が一漏洩した場合は、Botが悪用される可能性があるため、開発者ポータルで速やかに再生成する必要がある。

次に、Botを開発する作業ディレクトリ内に、「config.json」と「index.js」という二つのファイルを作成する。「config.json」はBotの設定情報を保存するためのファイルで、先ほど取得したBotトークンと、Botがコマンドと認識するメッセージの先頭に付ける「プレフィックス」(例えば「!」)を記述する。「index.js」はBotの主要な処理を記述するJavaScriptファイルである。

Bot開発の中心となるDiscord.jsライブラリをプロジェクトに導入する。コマンドライン(ターミナル)でnpm install discord.jsと入力し実行すると、必要なライブラリが自動的にダウンロードされ、プロジェクトに組み込まれる。その後、「index.js」ファイル内で、Discord.jsから提供される機能と「config.json」に記述した設定情報を読み込むコードを追加する。これにより、プログラム内でこれらの情報や機能を利用できるようになる。

次に、Botの本体となるクライアントを初期化する。「index.js」の中で、Discord.jsから提供されるClientクラスを使って新しいクライアントインスタンスを作成する。この際、「Intents」という設定も行う。Intentsは、BotがDiscordからどのような種類のイベント(例えば、メッセージの送信やサーバーへの参加など)を受け取るかを明示的に宣言するもので、セキュリティとパフォーマンスの観点から必要な権限のみを与えることが推奨されている。ここでは、サーバーに関する情報とメッセージに関する情報を受け取る設定を行う。クライアントが正常にDiscordにログインし、準備が整った際には、「ready」イベントが発生する。このイベントを監視するリスナーを設定し、Botがオンラインになったことを示す確認メッセージをコンソールに出力するように記述する。

Botがユーザーのメッセージに反応するように、テキストコマンドの処理ロジックを実装する。これも「index.js」の中で行う。「messageCreate」イベントリスナーを追加することで、Discordサーバーに新しいメッセージが送信されるたびに、このリスナー内のコードが実行される。まず、メッセージがBotのプレフィックスで始まっているか、そしてメッセージの送信者がBot自身ではないかをチェックする。これにより、Botが自分自身のメッセージや、コマンド形式ではないメッセージに無駄に反応するのを防ぐ。これらの条件を満たした場合、メッセージの内容からプレフィックスを取り除き、コマンド名とそれに続く引数(コマンドに渡す情報)を解析する。例えば、「!ping」というメッセージに対しては「ping」というコマンドとして認識し、Botが「Pong!」と返信する処理を記述する。また、「!say こんにちは」のようなコマンドでは、「say」コマンドに続く「こんにちは」という引数を取得し、Botがその内容をそのまま発言するような機能も実装できる。引数がない場合にエラーメッセージを返すなどの処理も加えることで、より使いやすいBotになる。

最後に、作成したBotを起動し、Discordサーバーに招待する。「index.js」ファイルの末尾に、Botトークンを使ってクライアントにログインさせるコードを追加する。そして、ターミナルでnode index.jsコマンドを実行すると、Botが起動し、Discordに接続する。正常に接続できると、コンソールに「Logged in as YourBotName!」のようなメッセージが表示されるはずだ。

BotをDiscordサーバーに招待するには、再び開発者ポータルに戻る。OAuth2の「URL Generator」を利用し、Botがサーバー内で何ができるか(スコープとパーミッション)を設定する。「bot」スコープをチェックし、Botがメッセージを送信できるように「Send Messages」などの必要な権限を選択する。これらの設定に基づいて生成されたURLをウェブブラウザで開き、Botを招待したいサーバーを選択することで、Botがサーバーのメンバーリストに表示される。これで、Discordサーバーのテキストチャンネルで!pingと入力し、BotがPong!と返答するかどうかを試すことができる。

このようにして、Discord.jsを使った基本的なDiscord Botを構築し、起動して、簡単なコマンドに応答させるまでの一連の流れを理解できる。これは、より高度な機能やインタラクティブなBotを開発するための出発点となるだろう。

関連コンテンツ

関連IT用語

関連ITニュース