誰でも作れる!Discord Bot 2024(初期設定編)

この note では

・誰でも簡単
・自前のサーバーやPC無しで、24時間オンライン
・自分専用のオリジナル(公開もできる)

な Discord Bot の作り方を紹介します!

4年前に「誰でも作れる!Discord Bot(基礎編)」という note を書きましたが、内容が古くなってしまったのでリニューアルすることにしました。

リニューアルにより手順がもっと簡単になりました!
コードもしっかり書き直したのでカスタマイズもしやすくなりました。

この記事で紹介している Bot「MiniPotato」の Discord サーバーでは、紹介している Bot を実際に操作できます。
要望や質問等も可能な範囲で受け付けていますので、お気軽にご参加ください!
https://discord.gg/UDf4R5fgqr

リンク

構成

discord.js v14.14.1を利用。
Glitch にて Discord Bot を実行。
Google Apps Script から POST することで起動状態を維持しています。

1. Discord 上の Bot の作成

https://discord.com/developers/applications から、Discord のアプリケーションを作成します。


1.1 右上の New Application を押す

画像

1.2 アプリの名前(なんでもOK)を入力して Create を押す

画像

1.3 Installation ページで設定を行う

画像

1.3.1 Install Link で Discord Provided Link を選択

1.3.2 Default Install Settings の SCOPES で「bot」を選択

1.3.3 Default Install Settings の PERMISSIONS で権限を選択
身内向け・自分用であれば「Administrator」でOK
公開するBotの場合は、必要な権限を選択してください。

1.3.4 右下の Save Changes をクリック


1.4 Bot ページで設定を行う

画像

1.4.1 Build-A-Bot -> ICON と USERNAME を設定する
ここで設定したものが、Discord 内に反映されます。

1.4.2 Authorization Flow -> PUBLIC BOT を設定する
有効にすると、だれでも Bot をサーバーに追加できます。
無効にすると、Bot をサーバーに追加できるのが自分だけになります。

1.4.3 Privileged Gateway Intents -> MESSAGE CONTENT INTENT を有効化する
Botで一部の情報を取得するためには、対応する Privileged Gateway Intents を有効化する必要があります。
私が公開しているサンプルでは、MESSAGE CONTENT INTENT を有効化してください。

1.4.4 右下の Save Changes をクリック


1.5 必要な情報をコピーしておく

1.5.1 Bot -> TOKEN からトークンを取得
Reset Token を押すと、トークンを取得できます。
後ほど使うので、コピーして控えておいてください。
※このトークンがあると Bot を操作できてしまいます。絶対に公開しないでください!
※万が一公開してしまった場合は、もう一度 Reset Token を押すことで以前のトークンを無効化することができます。

1.5.2 General Information -> APPLICATION ID をコピー


1.6 Bot をサーバーに追加する

画像

1.6.1 Installation -> Install Link から URL をコピー

1.6.2 URLをブラウザで開いて、Botを追加したいサーバーを選ぶ


2. Glitch の設定

https://glitch.com/dashboard から、Glitch の設定を行います。


2.1 アカウント作成

右上の Sign up からアカウントを作成してください。
Google でログインするのが楽です!


2.2 プロジェクトを Remix する

画像

プロジェクトを Remix することで、プロジェクトを自分のアカウントにコピーできます。
https://glitch.com/~minipotato-bot-by-eoi にアクセスして、右下の「Remix your own」を押してください。


2.3 初期設定を行う

画像

2.3.1 トークンを設定する
手順 1.5.1 でコピーしたトークンを、「TOKEN」の右側の空欄に入力してください。

2.3.2 アプリケーション ID を設定する
手順 1.5.2 でコピーしたアプリケーション ID を、「APPLICATION_ID」の右側の空欄に入力してください。


2.4 動作を確認する

下にある「📝LOGS」をクリックすると、プログラムの出力を確認することができます。
正しく設定されていれば、「<Botの名前> がログインしました!」と出力され、Discord 上の Bot もオンラインになります。

2.4.1 コマンドを実行してみる
試しに「/nyan」と入力して、コマンドを実行してみましょう。Botがリプライしてくれます。
ちなみに、テキスト入力欄の左側のプラスマークから「アプリを使う」を選ぶことで、コマンドの一覧を確認できます。


3. Google Apps Script の設定

現状では、Glitchのサーバーが勝手に休眠状態になってしまうので、Google Apps Scriptから定期的にアクセスを行うことで休眠しないようにします。


3.1 Google Apps Scriptのプロジェクトを作成する

左上の「新しいプロジェクト」を押して、プロジェクトを作成します。
「無題のプロジェクト」を押すとプロジェクトの名前を編集できるので、わかりやすい名前を設定するのがおすすめです。

画像

3.2 ソースコードを入力する

3.2.1 Glitch アプリの URL をコピーする
アプリケーションの URL は、Glitch のプロジェクト画面の Share から確認できる、「Live site」に書かれている URL です。
これをコピーしてください。

画像
画像

3.2.2 ソースコードを入力し、保存する
元のコードをすべて消し、以下のコードを入力してください。
また、画像のように、URL を " " の間に入力してください。

入力後は左上のフロッピーマークを押して保存してください。

var GLITCH_URL = "コピーしたURL";
function wakeGlitch(){
 var params = {
   'contentType' : 'application/json; charset=utf-8',
   'method' : 'post',
   'muteHttpExceptions': true
 };
 response = UrlFetchApp.fetch(GLITCH_URL, params);
}
画像

3.3 トリガーを設定する

3.3.1 左の目覚まし時計アイコンを押し、トリガーページを開きます。

画像

3.3.2 右下の「トリガーを追加」を押し、画像の通りに設定してください。
「分ベースのタイマー」「1 分おき」を選択してください。

画像

3.3.3 許可を求められるので、許可します。
Googleアカウントを選択後は、画像のように「詳細」→「プロジェクト名に移動」を押して、許可

画像

3.4 Glitchプロジェクトの「📝LOGS」からログを確認し、「Received POST request.」というログが1分に1回出ていれば設定完了です!


4. まとめ

これで初期設定は完了です!

コマンドの解説は「Discord Bot「MiniPotato」の紹介!🥔」をご参照ください!
カスタマイズ方法については「誰でも作れる!Discord Bot 2024(カスタマイズ編/初級)」以降の note をご参照ください!🙇‍♂️

MiniPotato Bot の Discord サーバーでは、紹介している Bot を実際に操作できます。
要望や質問等も可能な範囲で受け付けていますので、お気軽にご参加ください!
https://discord.gg/UDf4R5fgqr


この記事が気に入ったらサポートをしてみませんか?

ピックアップされています

誰でも作れる!Discord Bot 2024

  • 2本

コメント

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。
ぽてとがすき。色々書くよ~ https://twitter.com/exteoi
誰でも作れる!Discord Bot 2024(初期設定編)|EOi
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1