2022年04月21日更新
DiscordのBotの作り方!アカウント登録や基本的な作成・設定方法を解説
DiscordのBotの作り方は比較的簡単です。専門的な知識がそれほどなくても作成できます。この記事では、DiscordのBotの作り方の手順と作成してBotの導入と設定方法、Botがオフラインにならないようにするための方法などについて詳しく解説します。
DiscordのBotの作り方
DiscordではBotを作成して導入することができます。Botを導入することで、常時オンラインで稼働できるBotの設置なども可能になります。
DiscordのBotの作り方は、それほど高いプログラミングコマンドの知識などがなくてもできるので、ぜひ興味のある方は作成して導入してみましょう。
DiscordのBotとは
Discordでも導入できるBotとはどのようなものなのでしょうか。Botについて解説します。
特定のタスクを自動的に実行するアプリケーションソフトウェア
Botとは、Discordだけでなく現在さまざまなところで使われています。Botとは、特定のタスクをその都度コマンドを入力しなくても、自動で実行できるように設定するアプリケーションのことです。
チャットに誰かが入室してきたら、コマンドを入力しなくても自動で挨拶文を送るようにできるBotや、ゲーム配信中に視聴者が入力したコメントを自動で読み上げてくれるBotなど、Botを活用することでさまざまな機能を自動でできるようになります。
Botを24時間常時オンライン状態に設定できれば、管理者がオフライン時でもBotがオンラインで自動稼働して、オフラインの管理者の代わりにタスクを実行してくれます。
DiscordのBotでできること
DiscordでBotを導入するとどのようなことができるようになるのでしょうか。DiscordのBotでは多くの機能を導入できますが、その中でもよく使われている主な4つの機能について詳しく見ていきましょう。
テキストの自動読み上げ
DiscordにBotを導入することでできるようになることの一つは、テキストの自動読み上げです。Discordにコメントが入力された時に、自動読み上げするように設定したBotを導入していると、入力されたテキストをBotが自動音声で読み上げてくれます。
テキストの自動読み上げ機能のBotを導入していると、ゲーム配信などで書き込まれたコメントに目を通すことができない時でも、コメントをBotがその都度読み上げてくれます。目が離せない状況でも、誰がどのようなコメントを書き込んだのかすぐにわかるのでとても便利なBot機能です。
テキストチャンネルでのコマンド入力
Discordのテキストチャットでは、様々なコマンドを利用することができます。Discordのコマンドは文字を太字にしたり斜体にしたりするコマンドがあらかじめ決まっていますが、Botでは通常のコマンドとは別に、特定のコマンドを入力したら特定のテキストが自動で入力される、といった設定を導入できます。
例えば、日本語のチャットではあまり使わない「$」や「#」などの記号をコマンドとして設定したキーワードの先頭につけると、設定したコマンドが実行されるように設定できます。
コマンドでのテキスト入力ができれば、入室者が入ってきたときの挨拶文などを簡単なコマンド入力っだけで表示できるようになります。よく使うテキストは、コマンド入力にしてしまうと入力の手間が楽になります。
コマンドはDiscordのサーバーに導入されたBotごとに違うので、その都度参加するサーバーで使われているBotのコマンドを覚えなくてはいけません。しかし、Botを導入した管理者が、どのようなコマンドを導入しているのかをまとめたヘルプなどを簡単に表示できるように設定している事が多いので、初めて参加するサーバーのチャットでも、コマンドの使い方に困ることはあまりありません。
ユーザー同士の会話/翻訳などで交流が深まる
DiscordのBotには、ユーザー同士の会話を和ませられる機能を追加することもできます。例えば、雰囲気が固くなりがちなチャットに、定期的に場を和ませるようなつぶやきを投稿するBotなどを導入できます。誰かがテキストチャットに書き込むと相槌を打ってくれたり、適当に返事をくれたりするBotを作成して導入することもできます。
また、DiscordのBot機能では翻訳機能も追加できます。特定の言語を自動でBotで翻訳できるように設定できるBotなどがあります。無料で利用できる翻訳Botもあります。
Discordでは公開されているサーバーであれば、いつでも誰でもチャットに参加できます。翻訳Botが導入されて入れば、言葉の壁はなくなり世界中の人とチャットができるようになります。
会話を和ませたり、翻訳機能が追加されたBotによって人々の交流の輪を大きく広げることができます。
サーバー管理など
DiscordにBotを導入することで、管理人のサーバー管理の手間の一部をBotに代行させることができるようになります。Discordでサーバーを設置していると、荒らし対策に追われることがあります。管理者がオフラインのときでも、Botを常時オンラインにしておくことで、オンラインでのBotがサーバー管理を代行してくれるので、管理の手間を大幅に軽減できます。
Botで役職の追加はサーバー内のメンバーに限定したり、管理人がオンラインでないときでもメッセージの自動削除機能の追加、自動編集機能などの追加が可能になります。特定の言葉をフィルターとして設定しておき、Botによってフィルターに引っかかったメッセージは自動で削除できるBotなどもあります。
管理人がサーバー内を常に巡回していなくても、Botを常時オンライン状態にして稼働させておけば、管理人がオフライン状態のときでも、Botがサーバーを巡回して管理してくれます。
DiscordでBotを作成する方法
ここからDiscordのBotを作成して追加してインストールする方法を順番に見ていきましょう。Botの追加の手順は順番に解説していきますが、DiscordのBot作成とインストールには、Discordの他にWebアプリ作成サービスのGlitchとGoogleアカウントが必要です。まずは、Discordでの設定方法から見ていきましょう。
Bot用アカウントの作成/登録/導入方法
DiscordでBotを作成しようとしているのであればすでにDiscordアカウントは取得済みでしょう。DiscordのBot用アカウントのDiscordのDeveloper Portalへアクセスし、現在所有しているDiscordアカウントでログインします。
アプリケーションの作成
DiscordのDeveloper Portalへログインしたら、画面の右上の「New Application」をクリックします。
新しいアプリケーションの名前の入力画面が開きます。これから作成するBotの名前を「Name(名前)」に入力して、「Create(作成)」をクリックします。
これで新しいDiscordのBot用アカウントの作成ができました。画面の左ペインの「SELECTED APP」に作成したBot名が表示されているか確認しましょう。
Botユーザーの追加
次にBotのアプリケーションを作成していきます。
作成した新しいApplicationの画面の左ペインで「Bot」をクリックします。Botの画面内にある「Build-A-Bot」の左側にある「Add Bot」をクリックします。
「アプリケーションにBotを追加するか」という意味の確認画面が表示されます。特に問題はないので「Yes , do it!」をクリックしましょう。
これで新しく作成したアプリケーションのオフラインでのBotユーザー化に成功しました。まだBotのオンライン化はできていませんが、BotをDiscordで利用できるようになりました。
DiscordアプリケーションのオフラインでのBotユーザー化に成功したら、オンライン化に向けていくつか設定を行っておきましょう。アイコンとBotの名前を設定します。
画面を少し下にスクロールして「Authorization Flow」を設定します。「PUBLIC BOT」をオンにするとBotが全体公開されます。サーバーのメンバーを限られた人に限定する場合には、こちらはオフにしておきましょう。その他の設定はすべてオフで構いません。
トークンの取得
Bot化した新しいDiscordのアプリケーションを設定し、トークンを取得していきましょう。まずはBotのアイコンと名前を設定します。
「TOKEN(トークン)」の「COPY」をクリックすると、そのBotのトークンを取得できます。トークンを表示したい場合には「Click to Reveal Token」をクリックするとトークンの文字列が表示されます。
トークンが漏洩したなどセキュリティ上の危険性があり、トークンを変更したい場合には「Regenerate」をクリックすると、そのBotのトークンがリセットされて変更されます。
Discordに限らず、トークンとはアカウントのセキュリティを保つための認証情報として利用されています。DiscordではBotなどの作成したアプリケーションのトークンはログインIDとログインパスワードを兼ねているような重要情報です。
万が一トークンが流出してしまうと、第三者がBotにログインできてしまいます。トークンを入力するだけで誰でもBotが参加しているサーバーの情報や、サーバーのメンバー一覧などにアクセスできてしまいます。サーバーの他の参加者へも迷惑をかけることになるので、取得したトークンの管理は厳重に行いましょう。
Glitchのアカウントを作成
DiscordのBot用アカウントの設定ができたら、次はGlitchアカウントの作成を行っていきましょう。Glitchはブラウザで動作するアプリ作成ツールです。DiscordにインストールするBotのプログラムの作成を行っていきます。まずは、こちらのGlitchのページへ入りアカウントを作成しましょう。
画面の右上の「Sign up(登録する)」をクリックします。
アカウント作成画面が開きます。FacebookアカウントやGoogleアカウントでもGlitchアカウントを作成できます。作成しやすい方法を選んでアカウントを登録しましょう。
サーバーへ招待
作成したBotをDiscordのサーバーへ招待します。Botのインストールには特に難しい手間は必要ありません。Discordのアプリケーション作成画面を開きます。
左ペインで「OAuth2」をクリックします。「URL Generator」をクリックします。「SCOPE」で「bot」をクリックします。
Botに許可する権限にチェックを入れます。すると画面の下のURLが設定されます。
URLをコピーします。
新しくブラウザのタブを開いて、アドレスバーにコピーしたDiscordのBotのURLを貼り付けて開きます。
サーバーへの招待画面が開きます。DiscordのIDを確認します。「サーバーを選択」でBotを追加してインストールするサーバーを選びます。Botを追加してインストールするサーバーを設定したら「はい」をクリックします。
Botのサーバーでの権限を確認したら「認証」をクリックします。ロボットではないことを確認したら認証が完了します。
Discordを確認してみると、サーバーのメンバーに作成したBotが追加されていることが確認できます。
プロジェクトを作成
Discordに追加したBotで、メッセージの自動送信やコメントの自動読み上げなどの機能を使えるようにするためには、Glitchで作成したプロジェクトをDiscordのBotに追加して設定する必要があります。Glitchでプロジェクトを作成していきましょう。Glitchで先程作成したアカウントにログインします。
画面の右上の「New project」をクリックします。「glitch-hello-node」を選択します。
すると、新しいプロジェクトの作成画面が開きます。プログラムのコマンドはすでに入力された状態です。
次に、Glitchで作成したプログラムをDiscordのBot上で動くようにするために、トークンを設定します。
Glitchの左ペインの「.env」をクリックします。画面の下の方の「Add a Vriable」をクリックします。
「Variable Name」には「DISCORD_BOT_TOKEN」と入力します。「Variable Vlue」には、DiscordのBot作成画面でコピーしたトークンを貼り付けます。保存ボタンはありません。自動保存されます。
これでGlitchで作成したプログラムがDiscordのBot上で動作するようになりました。
GitHubからインポートする
次にDiscordのBotで動作させるプログラムをGitHubからインポートしましょう。GitHubはプログラムコードを公開できるプラットフォームです。自分で作ったプログラムを公開したり、他の人が作ったプログラムをダウンロードしてインストールして利用したりできます。
DiscordでBotを動作させるためのプログラムも公開されているので、GitHubから入手してインストールしましょう。
Glitchの画面の左下の「Tools」をクリックします。
「Import and Export」をクリックします。
「Import from GitHub」をクリックします。
入力欄が表示されます。「ExtEOi/DiscordBotBase」と入力して「OK」をクリックします。するとGitHubから必要なプログラムがインポートされます。
- インポートせずにインストールする場合
GitHubからのインポート機能を使わない場合には、DiscordでBotを動作させるためのパッケージをGlitchにインストールします。パッケージのインストール方法も見ておきましょう。
パッケージをインストールするには、Glitchの左ペインで「package.json」をクリックします。画面の上部の「Add Package」をクリックします。
インストールする2つのパッケージ名「discord.js」と「querystring」を入力します。するとインストールできるパッケージ名が表示されるのでクリックします。するとインストールされます。似たような名前のパッケージがたくさん表示されますが、間違えて違うものをインストールしないように気をつけましょう。
Google Apps Scriptを作成
以上で、Discord上でBotが動くようには設定できました。しかし、Glitchだけでは5分アクセスしないとBotがオフラインになってしまい動作しなくなってしまいます。Botを設置する目的が、管理者がオンラインでなくオフラインでも、Botは常時オンラインで動作するようにするための場合もあります。管理者がオンラインでなければ、Botがオフラインになって止まってしまうと意味がありません。
そこで、管理者がオフラインのときでも、Botのオンライン状態を続けて、オフラインにならないようにするために、Google Apps Scriptを作成します。Google Apps Scriptにアクセスしましょう。
上記のリンクにアクセスして、Googleアカウントにログインします。「Starg Scripting」をクリックします。
「新しいプロジェクト」をクリックします。プロジェクト名を適当に付けておきましょう。Google App Scriptの「コード.gs」に次のコードを貼り付けます。
ここからコマンド===
var GLITCH_URL = "https://[Glitchのアプリケーション名].glitch.me";
function wakeGlitch(){
var json = {
'type':'wake'
};
sendGlitch(GLITCH_URL, json);
}
function sendGlitch(uri, json){
var params = {
'contentType' : 'application/json; charset=utf-8',
'method' : 'post',
'payload' : json,
'muteHttpExceptions': true
};
response = UrlFetchApp.fetch(uri, params);
}
===コマンドここまで
コードを貼り付けたら、1行目の「[Glitchのアプリケーション名]」の部分を、自分のGlitchのアプリケーション名に変更します。Glitchで作成したBotのプログラムを開きます。
「Share」をクリックします。
「Code」の最後の「/」の後ろの部分をコピーして、Google App Scriptの該当部分へ貼り付けます。Google App Scriptに正しく貼り付けたら、保存ボタンを押します。
「実行する関数を選択」で「wake Glitch」を選択してから「実行」ボタンを押します。
承認を求められるので「権限を確認」をクリックします。
安全性が確認されていないという旨のメッセージが表示されます。「詳細」をクリックして、「安全ではないページに移動」をクリックします。
「許可」をクリックします。これでGoogle App ScriptでGlitchが実行されるようになりました。しかし、これではオフラインになってしまうのオンラインにすることはまだできません。次に5分で自動でオフラインになってしまうGlitchを、5分おきに実行してオンラインにするように、オフラインになる前にオンライにするためのトリガーを作成しましょう。
Google App Scriptの左ペインの時計のマークをクリックします。「トリガーを追加」をクリックします。
「時間ベースのトリガーのタイプを選択」を「分ベースのタイマー」に、「時間の感覚を選択」を「5分」に設定して「保存」をクリックします。これで5分おきにGoogle App ScriptからGlitchへ起動するようにトリガーが発信されるようにできました。
5分で自動でオフラインになってしまうGlitchで作成したBotも、このトリガーによって5分おきにオンラインになるように設定できました。