
こんにちは!今回はrepl.itとuptimerobotを使って24時間稼働するDiscord.jsでのDiscord Botの作り方、解説をしていこうと思います。
Contents
repl.itとは
repl.itは50種類以上の言語に対応したブラウザだけで完結するクラウドIDEです、複数人で共同開発もできGithubの連携にも対応しています。
チーム内チャットも備わっており便利です。
アカウント登録
アカウントを作成してない人は右上のSignupから作成します。
メールアドレス、Google アカウント、Github、Facebookに対応しています、皆さんのお好みでアカウントを作っちゃってください。
Botを作成する
プロジェクトのコピー
事前にテンプレートを作成しましたのでご自由にお使いください。
サイトを開いたらForkを押してプロジェクトをコピーします。
トークンを入れればすぐに起動するようになっています。コードの内容は後程解説します。
トークンを入れる
value: Discord Token
起動する
トークンを入れたら中央上にあるRunを押して起動します。右下のコンソールにReadyと表示されたら無事起動できました!
もしトークンが入っていなかったり無効なトークンだった場合はコンソールに上のようなエラーがでます、TOKENのスペルミスなど注意深く確認してみてください。
テンプレートのコード内容
無事起動できたらコードの内容を上から解説していきます。
const http = require('http');
http.createServer(function (req, res) {
res.write("online");
res.end();
}).listen(8080);
これはBotを24時間起動するためにWebページを作成しているコードなので特に触れなくて大丈夫です。
client.on('ready', () => {
console.log('ready');
})
Botが起動した時などに実行されるコードです、実行時にコンソールにreadyと表示されます。
client.on('message', message => {
if(message.author.bot) return;
if(message.content === '!ping'){
message.channel.send('pong');
}
if(message.content === '!pong'){
message.channel.send('ping');
}
})
メッセージが送信された時に実行されるコードです、2行目はメッセージを送信したユーザーがbotだった場合、returnでイベントを終了するコードです。
メッセージが!pingだった場合Botがpongを返す。
メッセージが!pongだった場合pingを返すコードになっています。
client.login(process.env.TOKEN);
ログインするためのコードです、カッコ内にトークンを入れます。
トークンは絶対に漏れてはいけない為、他のユーザーには見えないenvで管理します。
process.env.名前
で名前のところのenvを取得することができます。
uptimerobotで24時間起動する
このままではタブを閉じると数分でBotはオフラインになってしまうためuptimerobotでpingを送ります。
アカウントを作成してない人はアカウントを作成しましょう、中央のStart monitoring in 30 secs又は右上のRegister for FREEを押してアカウントを作成します。
ダッシュボードに移動したら左上のAdd New Monitorを押して新規モニターを作成します。
Monitor Type *はHTTP(s)にします。
Friendly Name *は何でもいいのでわかりやすい名前にします。
URL (or IP) *はreplに戻りコンソール上にあるURLにします。
Monitoring Interval *は5分のままにします。
このような感じになりました、右下のCreate Monitorを押せば完了です
最後に
Botは起動できましたか?
もしわからないことや質問したいことなどがありましたらサポートサーバーでいつでも聞いてください!