18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

discord.jsAdvent Calendar 2021

Day 2

【基本】discord.js v13 でボット作成 #1 ~ボットの作成と初起動~

Last updated at Posted at 2021-10-23

前書き

皆さんは「Discord」でボットを見たことはりますでしょうか?!?!(唐突)
ボットとは、一定のタスクや処理を自動化するためのアプリケーションやプログラムのことを指します。

今回は、そのボットをイチからココからニニから開発をしていきます。
また、投稿主は「Windows10」を使用しているため、記事の内容もWindows10を使用している方向けになっています。
ご了承ください。

開発する環境を整える

今回、ボットを開発するのにあたって、次のものが必要になっていきます。
要するに、物を作るのに必要な「道具」というイメージです。

  • パソコン (スマホでもできますがこのシリーズではすべてパソコンで行います)
  • Node.js (最低要件1:16.6.0)
  • npm (Node.jsをインストールするとセットでついてくるため手順不要)
  • discord.js v13
  • コードエディタ or IDE

ダウンロード・インストール

細かいことなんですが、「ダウンロード」と「インストール」は違う意味らしいです。
しかし、使い分けるのがとてもとてもとても面倒くさいのでこの記事では 「インストール」に統一します。

ダウンロード
ダウンロードとは、ネット上にあるファイルを手元の端末にコピーすることを意味します。

インストール
アプリなどのソフトウェアをスマホやパソコンの中で使用できる状態にすること

さっそくやっていきます。

Node.js のインストール

まず、以下のリンクをクリックし、サイトへ進んでください。

今回、「discord v13」を使用するにあたって最低でも 「Node.js」のバージョンは16.6.0以上である必要があります。
そのため、「最新版」をクリックし、その中で任意(ファイル名が「node-16.6.0.xxx」以上)のものを選び、インストールしてください。
今回は「node-v17.5.0-x64.msi」をインストールしました。
image.png
先ほどインストールしたものを開くと次のようなインストーラーが出てきます。
基本的にインストーラーの指示に従えば良いです。特にいじらず「Next」をクリックしていけばよいと思われます。
image.png
インストールが完了すれば次の画面になります。
image.png

インストールできたか確認

コマンドプロンプト2を開きます。
コマンドプロンプトの使用方法は次をご覧ください > https://eng-entrance.com/cmd-usage

コマンドプロンプトの開き方 [Windows]+[R]キーを押し、[名前]入力ボックスに「cmd」と入力し[Enter]または[OK]をクリック

image.png
image.png

そしたら黒い画面に以下のコマンドを入力してください。

cmd
node --version

以下のような文が表示されたらインストールは成功です。

cmd
v17.5.0

必要な物という中に「npm」というものが入っていたと思います。
しかしこちらは「Node.js」をインストールした際にセットで入っているため 「npm」自体はインストールする必要はありません。

一応npmも入っているのか確認してみましょう、先ほどのコマンドプロンプト(黒い画面)にて、今度は以下のコマンドを入力してください。

cmd
npm --version

そうしたら、次のような文が表示されるはずです。

cmd
7.6.3

これで、必要な物のうち、二つがインストールできました。

  • Node.js
  • npm
  • discord.js v13
  • コードエディタ or IDE

discord.js v13 のインストール

「discord.js v13」のインストールの方法はかなり簡単です。
しかし、**まだインストールはしなくて大丈夫です。今は、方法だけを紹介しますが、実際にインストールするのは後程紹介いたします。
先ほどと同じくコマンドプロンプトを開いたら、今度は以下のコマンドを入力します。

cmd
npm install discord.js

ボットのアカウント作成

以下のリンクをクリックし、DEVELOPER PORTALにアクセスしてください。

上記のリンクをクリックすると、以下のような画面に移ると思います。
image.png

右上の「New Applications」というボタンをクリックし、「NAME」のところに任意の名前を入力してください。
image.png

名前を入力(今回は「アヒャの助侍」)したら、「Create」ボタンをクリック。
image.png

左の「SETTINGS」の列にある「Bot」をクリック。
image.png

右にある「Add Bot」をクリックし、ボットを作成します。
image.png

作成に成功していれば、以下のような画面になります。
image.png

サーバーに招待

今度は「Setting」列から「OAuth2」を選択し、「URL Generator」をクリック。
image.png

「SCOPES」ボックスの中から「bot」にチェックを入れます。
image.png

すると、下に何やらなにやらレトロ感を感じるラーメン屋のメニューくらいずらっと選択項目があるボックスが出てきました。「ニンニクマシマシーッ!!!(‘Д‘n)(‘Д‘n)(‘Д‘n)」
これは招待する際にボットに付与される権限を選択する項目です。ほかの人に宣伝するときなどはここから任意の権限を選択しましょう。
今回は「Administrator(管理者)」のところにチェックを入れます。
image.png

そしたら「ふわっふわもちもちプリンが完成!」なんてことはありませんのでご安心を。
下にURLが生成されました。これをコピーし、開きましょう。
(ちなみに今回管理者の権限を選択したため「permissions=」の後の数字が「8」になっています。)
image.png

そしたら、真ん中の「Select a server」のところをクリックし、ボットを入れたいサーバーを選択し、「Continue」をクリックしてボットを入れます。
image.png

インテンツ(Intents)

そしたら少し下にスクロールし、「Privileged Gateway Intents」の設定に移ります。
「Intents」って何?って思った方は以下の記事が本当と書いてマジわかりやすいので見てみてください。

image.png

PRESENCE INTENT」「SERVER MEMBERS INTENT」「MESSAGE CONTENT INTENT」の三つにチェックを入れ、下に出てきた「Save Changes」をクリックし変更を保存します。
image.png

注意
「MESSAGE CONTENT INTENT」は2022年4月30日まで施行されません。

トークン(TOKEN)

先ほどの画面から一番上にスライドし、現在のアイコンやボットの名前が表示されている部分に行きます。
image.png

「TOKEN」と小さく書いてある部分の「Copy」をクリックし、トークンをコピーしてください。
image.png

トークンの扱い
今コピーしたトークンは漏洩しないよう厳重に管理してください。
このトークンが第三者に不正利用されるとボットが乗っ取られる可能性があります。

これでボットのアカウント作成等は完了です。早速開発をしましょう!

早速開発をしていく(コーディング3

コーディングをする環境には、大きく分けて二つの方法があります。

オンライン上で開発

GlitchやRepl.itのようにオンライン上で開発し、実行することができるものがあります。

自分のPCで開発

その名の通り自分のPC上で開発をし、実行します。(実行の際にはサーバーにファイルを送信して、実行することもあります)

このシリーズでは主に自分のPCでの開発を行います。
今回は初心者向けということなので、オンライン上で開発する方法も紹介していきます。

オンライン上で開発

今回は、「Glitch」を使用して開発をしていきます。
以下のリンクをクリックして、私が作成したテンプレートに進みます。

注意ダゾ❕
編集時点では、「Glitch」にて使用できるNode.jsのバージョンは「16.12」までとなっていて、最低要件の「16.6」を満たしておりません。
そのためv13の新しい機能などが使えない場合があります。ご了承ください。

右上の「Remix」を押すと、自分が編集できる状態になります。
もし、ログイン・新規登録されていない場合で、分からない際は、サイトの指示または他の人の記事を見ていただくことを推奨します。
image.png

左の「Files」列から「.env」をクリックして開きます。
image.png

そしたら真ん中らへんにある「DISCORD_BOT_TOKEN」の右にある「Variable Value」に先ほどコピーしたトークンを貼り付けます。
image.png

そしたら完了です!
Discordを見てみましょう。トークンを入力したボットがオンラインになっていれば成功です!
そのボットにメンションをしてみて、返信が返ってくることも確認しましょう。

自分のPCで開発

先ほども書きましたが、編集主はWindows10を使用しているため、紹介するのもWindows10を使用している方向けになっています。予めご了承ください。
また、コードエディタまたはIDE(総合開発環境)は開発の際にほぼ必須となってくるので、必ず使えるようにしておきましょう。
今回は「Visual Studio Code」というコードエディタのインストール方法を紹介します。

Visual Studio Code のインストール

まずは、下記リンクにアクセスしてください。

トップにある「今すぐダウンロード」をクリックしてください。
image.png

そしたら、自分のプラットフォームにあったものをクリックしインストールしてください。
今回は「VSCodeUserSetup-x64-1.64.2」をインストールしました。
image.png

使用許諾契約書に同意したら、後はインストーラーの指示に従うだけです。
image.png

これでVisual Studio Codeのインストールは完了しました。
開発に戻ります。

一応Cドライブ直下ではないデスクトップなど、別でもどこのフォルダでも構いませんがいつでもアクセスできやすい場所に任意の📁フォルダーを作成します。
image.png
そしたらそのフォルダでコマンドプロンプトを開きます。
開き方はファイルのパスの部分に「cmd」と入力すればおkです。
cmdの開き方.png
そしたら以下のように黒い画面が出てくるので、「npm init」と入力します。

cmd
npm init

image.png
色々出てきますが、最初の「package name」以外は基本的に「Enter」を押し続けるでおkだと思われます。
「package name」はテキトーな名前を付けておいてください。今回は「test」にしました。
image.png
そしたら今度は「npm install discord.js」と入力します。

cmd
npm install discord.js
npm install dotenv

以下の画面になればdiscord.jsのインストールは成功です。
image.png

そしたら今度は以下のコマンドを打ちます。

cmd
npm install dotenv

そしたら、作成したフォルダ内で右クリック(なんかポップアップが出てくる方)し、「Code で開く」をクリックしてください。
image.png

すると、以下のような画面になります(背景や一番左のタブの内容は違う可能性があります)
image.png

いろいろなファイルがあるところの上にある4つのボタンの中から
image.png

このボタンをクリックすると新しいファイルを作成することができます。
image.png

そしたらファイル名を「index.js」にします(任意のものでおkなはず... 一応index.jsにした方が良いと思われます)
image.png

作成し終えたらそのファイルを開き、以下の様なコードを書きます。

index.js
const { Client, Intents } = require('discord.js'); //discord.js からClientとIntentsを読み込む

const client = new Client({intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_MESSAGES]});  //clientインスタンスを作成する

client.once('ready', () => { //ここにボットが起動した際のコードを書く(一度のみ実行)
	console.log('起動完了'); //黒い画面(コンソール)に「起動完了」と表示させる
});

client.login('トークン'); //ログインする

intents: には任意のインテンツを入れます。
下記のものを丸パクリしてもらったほうが早いと思います。

インテンツの指定例
const client = new Client({intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_MESSAGES]}); 

指定できるインテンツ一覧

  • GUILDS
  • GUILD_MEMBERS
  • GUILD_BANS
  • GUILD_EMOJIS_AND_STICKERS
  • GUILD_INTEGRATIONS
  • GUILD_WEBHOOKS
  • GUILD_INVITES
  • GUILD_VOICE_STATES
  • GUILD_PRESENCES
  • GUILD_MESSAGES
  • GUILD_MESSAGE_REACTIONS
  • GUILD_MESSAGE_TYPING
  • DIRECT_MESSAGES
  • DIRECT_MESSAGE_REACTIONS
  • DIRECT_MESSAGE_TYPING
  • GUILD_SCHEDULED_EVENTS

インテンツに関して先程同様 超絶スーパーエキゾチックハイパー 理解しやすい記事があったので載せておきます。

トークン には先ほどコピーしたトークンを貼り付けます。

そしたらまた先程の要領でコマンドプロンプトを開きます。
今度は以下のコマンドを打ちます。

cmd
node index.js

package.json 内に main:index.js と書いてあれば node .で実行可能です。

Discordでボットがオンラインになり、黒い画面に「起動完了」と表示されれば成功です。

エラー解決

VisualStudioCodeインストール中のエラーや、ネットワーク環境でのエラーはそれに関するサイトをご確認ください。

トークン is not defined
トークンが正常に入力されていません。
コードをもう一度確認し、そのトークンがあってるかも確認してください。
image.png

CLIENT_MISSING_INTENTS
クライアントにインテンツが指定されていません。
現在開発しているバージョンではインテンツの指定が必須となります。
const client = new Client(); となっていませんか?
const client = new Client({intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_MESSAGES]}); 等に訂正しましょう。
image.png

引用

次回 -> 【基礎】discord.js v13 でボットを作る ~コマンド作成~

  1. 最低でも必要な条件の事。今回は「バージョン16.6.0以上必須」

  2. コマンドプロンプトは「cmd」と呼ばれることも多いです。

  3. プログラミング言語を使ってプログラミングコードを記述していく作業のこと

18
12
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?