<景品表示法に基づく表記>

このサイトのコンテンツには、商品プロモーションが含まれている場合があります。

紹介

【初心者向け】Repl.itでDiscordのBotを作る

こんちゃ、ryoです!

結構前ですが、Glitchがプロジェクトの稼働時間を制限しましたよね。

そのせいで、Botを常時稼働出来なくなってしまいました。ふざけんな

その事についてツイートしてたら、とあるサービスの公式アカウントさんからリプが来ました。

そのサービスの名前が “Repl.it” です!

正直、公式さんからリプもらうまでこのサービス知りませんでした()

という事で、Repl.itを使ってDiscordのBotを作ってみましょう!

アカウントを作成

Repl.itのトップページの「Sign up」からアカウントを登録しましょう。

Googleアカウント・GitHubアカウント・Facebookアカウントを使って登録もできます。

後は対話形式でいろいろ聞かれるので適当に答えていきましょう。

Replを作成

ログインした後のホーム画面の左側、「New repl」をクリックして新しいReplを作成しましょう。

言語と名前を設定します。今回はdiscord.jsを使うので「Node.js」にします。名前は適当。

あとは「Create repl」を押せば作成できます。

パッケージのインストール

Repl.itではクリック操作のみで簡単にパッケージをインストールすることができます。

エディター画面のサイドバーの箱アイコンをクリックし、検索窓に「discord.js」と入力。

一番上に出てくるはずなので、それをクリックし、+ボタンを押します。

コンソールに「+ discord.js@(バージョン)」が表示されれば成功です。

コードを書いていく

index.js

index.jsというファイルが既に作成されているので、そこにコードを書いていきましょう。

サンプルコードを用意しました。

// Response for Uptime Robot
/* https://glitch.com/~pumped-chopper からお借りしました */
const http = require('http');
http.createServer(function(request, response)
{
	response.writeHead(200, {'Content-Type': 'text/plain'});
	response.end('Bot is online!');
}).listen(3000);

//色々読み込み
const Discord = require("discord.js");
const client = new Discord.Client();

//token設定(詳しくは後述します)
const token = process.env.DISCORD_BOT_SECRET;

client.on("ready", () => {
  console.log(`Logged in as ${client.user.tag}!`);
  client.user.setActivity("はろー!")
});

client.on("message", message => {
  if (message.author.bot) return;
  if (message.content === "!ping") {
    message.channel.send("Pong!");
  }
});

//Discordにログイン
client.login(token);

Discordのログイントークンをこのファイルに書いてはいけません。

Repl.itの仕様上、誰でも見れてしまうのでセキュリティなんて概念がないからです。

APIキーなども同様です。

なので、Tokenなどの大切な情報は .env ファイルに書いていきます。

.env

ファイル一覧から「Add file」をクリックし、.env と記入。

作成出来たら下の例のように記入してください。

トークンを””などで囲う必要はありません。

DISCORD_BOT_SECRET=NzQzMDkzMT......

アクセストークンは、Discord Developer Portalから取得できます。

やり方はググれば腐るほど出てきます(気が向いたらやり方書くかも)

.replit

先ほどのように「Add file」から、.replit というファイルを作成します。

そして中にこれを書いてください。

run = "node index.js"

これを書くことで、エディター上部のRunボタンが正常に動くようになります。

UptimeRobotの設定

このままでも動きますが、Repl.itでは何もしないと30分でプロセスが終了してしまいます。

Glitchの時にも使っていた、UptimeRobotを使いましょう。

アカウント作成をしてない方はサクッと済ませておいてください。

ログインしたら、「Add New Monitor」をクリックします。

それぞれ、次のように設定します。

  • Monitor Type: HTTP(s)
  • Friendly Name: (適当に名前を付けてください)
  • URL: https://[Replの名前].[Repl.itのユーザー名].repl.co
  • Monitoring Interval 5~30の間(20くらいがおすすめ)

URLに関しては、今回は「ryosan1210」というユーザーネームのアカウントが「djs-tsts-bot」という名前のReplを作ったので、「https://djs-tsts-bot.ryosan1210.repl.co」というURLになります。

アラート通知先は適当にチェックを入れておきましょう。

ここで設定した場所にダウンアラートが届きます。

Botを起動

Repl.itに戻ります。

エディター上部の「Run」を押しましょう。

このように表示されていれば成功です。

ちゃんとDiscordでも反応してますね!

まとめ

  1. Repl.itを使うこと絵GlitchのようにBotを作成できる
  2. 基本的にソースコードを公開することになるので、トークン等は.envファイルに入れる
  3. UptimeRobotを使うことで常時起動できる

今回のReplはこのページで公開しているので、良ければ参考にしてみてくださいね。

それでは。

ABOUT ME
鮎月 / あゆつき
似非プログラマーで、ブロガーで、作家で、VTuberで、VRChatter。 気ままに生きる、いち学生です。

POSTED COMMENT

  1. ЅЅ より:

    .envが作成できないですどうすればよいですか?

    • ЅЅ より:

      .replitもできません

      • こんにちは!コメントありがとうございます。

        .envは、Replitでは非推奨となっておりますので、
        https://ayutsuki.net/introduction/discord-js-v13-replit/
        を参考に、環境変数の設定をしてください。

        .replitが作成できないのは…申し訳ありませんが分からないので、公式のフォーラム等を用いていただければと思います。
        考えられる要因としては、スペルミスがあります。
        (現時点では正常に作成されました。)

      • gkit より:

        .replitは隠しファイルになっていますので、表示させる必要があると思います、
        Files欄の、フォルダを追加するボタンの右側の点々を押すと「Show hidden files」と出てくるのでそれを押すと表示されるかと、、
        既にやっておられたらすみません、、

    • SUS より:

      左のロックのアイコン(Secrets)から似たようなことができます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です