こんにちは。ひぃです。
以前から自分のサーバでdiscord.jsで実装したbotを運用していたのですが、ある程度ちゃんとしたbotになってきたり、友人に教える機会が出てきました。
ということで、今回から何回かに分けてDiscord botの作り方を書いていこうと思います。
◇環境
node: 16.13.2
discordjs: 14.7.1
- 第1回「botの登録」
- 第2回「Replitでbotを起動する」
- 第3回「スラッシュコマンドの実装」
- 第4回「新機能の設計と下準備(リアクションハンドラの作成)」
- 第5回「inviteコマンドの実装」
- 第6回「24時間運用していくために」
1.botの登録
Discordのアカウントを作る
詳細な手順は流石に割愛しますが、Discordのアカウントを作りましょう。
とは言ってもDeveloperアカウントが別にあったり申請が必要だったりは特にないです。
普段Discordを使っているアカウントを用意すればOK!
また、開発するにあたって自分が管理者権限を持っているサーバを用意しましょう。
開発用に自分だけのサーバを作っても良いですし、身内サーバなんかで色々試しつつワイワイやるのも良いと思います。
個人的にはクローズドな身内サーバがあれば、botを使った感想や機能の要望と言ったフィードバックが直に得られるのでオススメです!
なお、いきなり大きなサーバで開発するのはオススメしません。
bot開発にも慣れてきて、主に権限回りに対する理解が深くなってきてから運用することをオススメします。
discordjsではユーザの名前変更からBANまで色々できてしまうので、権限が適切ではないと悪用されてしまいます。
Discord Developer Portalに入ってアプリケーションを作成する
まずはDiscord Developer Portalにアクセスします。
こんな画面が出てたらOKです。右上の「New Application」ボタンを押しましょう。
アプリケーション(bot)の名前を付けます。
私は好きなゲームの好きなキャラの名前を付けました。その方が愛着湧くし。
ポリシーとか読んでチェックマーク付けて、「Create」ボタンを押します。
Createボタンを押すとこんな感じの画面になります。
botのアイコンやプロフィールもここから設定できるので、必要に応じて設定しましょう。
また、今後出てくる「APPLICATION ID」や「PUBLIC KEY」「TOKEN」「SECRET」といった情報は他人に教えないようにしましょう。
これらの情報があると色々悪用できてしまいます。パッと浮かぶだけでもこんな感じ。
それぞれのIDが持つ意味がわかってくると必要に応じて公開したりできるとは思いますが、慣れないうちは全秘匿がド安パイです。
botを作成する
続いて、botを作ります。
左側に表示されている「Bot」をクリックしてください。
そして、「Add Bot」をクリックします。
この後確認画面が出た気がしますが、決定的なボタンを押して先に進みましょう。
するとこんな感じの画面になります。
ちょっと下の方に行ってbotの設定をしましょう。
- 『PUBLIC BOT』をOFF
- 『PRESENCE INTENT』をON
- 『SERVER MEMBERS INTENT』をON
- 『MESSAGE CONTENT INTENT』をON
『PUBLIC BOT』は誰でも導入できるbotにするかどうか、みたいな設定です。
後々運用が変わるかもしれませんが、最初は個人・身内レベルであると想定してOFFにしました。
『xxx INTENT』系の3種類はbotが導入されたサーバ内でbotが取得できる情報の設定です。
こちらもbotを公開して知らない人でも導入できるようにするのであれば正しく設定するべきですが、現在は全権限付与します。
必要な情報をメモする
続いて、必要な情報をメモしましょう。
先程「誰にも教えるな」と書いた情報をメモします。
本当に重要だからTwitterは勿論、Discordの身内鯖のFreeチャンネルとかに投稿しちゃダメですよ。
Win+R押してnotepad開いてそこにメモしましょう。
必要な情報は下記の二つです。
・CLIENT SECRET(=Discord TOKEN)
Bot > Reset Token > Copy
・CLIENT ID(=APPLICATION ID)
General Information > APPLICATION ID > Copy
これらの情報は次回、ソースコードを書いていく時に使います。
botをサーバに招待する
最後に、作ったbotをサーバに招待しましょう。
左側に表示されている「OAuth2」をクリック、その後展開される「URL Generator」をクリックしてください。 ちょっと下に行ってSCOPEで「bot」を選択、BOT PERMISSIONSで「Administrator」を選択します。
Administratorは「管理者」という意味です。
要するにそのサーバの全権限を付与するってことですね。
何度も書いていますが、身内鯖で運用するのを想定しているので、ちゃんと運用する時は権限を絞りましょう。
なんなら、身内鯖だけでも実装するコマンド次第では「一般ユーザが管理者権限を得て好き放題する」なんてことができます。
Administratorまでクリックすると、下のGENERATED URLのCopyボタンが押せるようになっていると思います。
URLをコピーして、そのままブラウザで開きましょう。
あとは画面の手順に従って、任意のサーバにbotを招待しましょう!
オフライン状態でbotがサーバに入ってきたら成功です!