24時間365日動くDiscordのbotを作ってみる(eris+heroku)

botの準備

下記のリンクからbotを作成します https://discordapp.com/developers/applications/

Create an applicationからappを作成する f:id:hetima333:20181013200834p:plain

BotからAdd Botを選択

f:id:hetima333:20181013200917p:plain

OAuth2からbotを選択、下に表示されたリンクにアクセスし、botをサーバー招待します

f:id:hetima333:20181013200933p:plain

開発環境の準備

Node.jsのインストール

下記のリンクからNode.jsをDLし、インストールします

https://nodejs.org/ja/

LTSと最新版とありますが、特に理由がなければLTSでOKです

MacでHomebrewなどが入っていればbrew install nodeでもOKです。

インストールが完了したら、ターミナルで

npm --version

と入力し、6.4.1のように数値が表示されればNode.jsのインストールが正常に成功しています

herokuの登録&インストール

下記のリンクにアクセスしてサイトの案内通りに(なげやり)サインアップします

https://www.heroku.com/

登録が完了したら下記のリンクからインストーラーを選択してDLします

Getting Started on Heroku with Node.js

botを制作するための作業フォルダの作成

Finderまたはターミナルから作業フォルダを作成します 場所はどこでもいいです

今回は例として/Users/XXXX/discordbotに作成しました(XXXXはPCユーザー名)

実際に作ってみる

ここからはターミナルを利用するので開いておいてください

npm install eris

erisというdiscord.jsのラッパーライブラリをインストールします

cd /Users/XXXX/discordbot

作業フォルダに移動します

npm init

npmの初期化を行ないます これによってpackage.jsonが生成されます

code package.json

package.jsonを開きます codeの部分はお使いのPCに入っているテキストエディタに合わせて変更してください

開いたファイルのscripts内に,"start" : "node index.js"を追記します

"scripts" : {
    "test" : "~~~~~~"
    ,"start" : "node index.js"
}

上記のコードが追記後のイメージです

code index.js

ソースファイルを開きます ファイルが開けない場合はtouch index.jsとしたあとにcode index.jsとしてください

const eris = require("eris");

// botトークンのIDをTOKEN_IDに入力します
var bot = new eris("TOKEN_ID");

bot.on("ready", () => {
    console.log("botの準備が完了しました");
});

// Discordに接続します
bot.connect();

開いたソースファイルに上記のサンプルコードを入力します TOKEN_IDは冒頭で作成したbotのページにあるものをコピーします

git init

gitを初期化します コマンドがエラーする場合は、下記のリンクからgitをインストールしてください

Git --distributed-even-if-your-workflow-isnt

git add . && git commit -m "initial commit"

変更したファイルのステージとコミットを行ないます - git addでステージするファイルを選択します。今回はすべてのファイルをステージするので . としました - git commitでステージしたファイルをコミットします。基本的にはコミットメッセージをつけてコミットするので-m “任意のメッセージ"とします

heroku create

herokuにアプリケーションを作成します

  • Creating foo… doneというメッセージが返ってきたら作成が成功しています。この場合fooが仮アプリケーション名になります(変更可能)
  • 作成が上手くいかない場合はherokuがメンテナンスをしている可能性があります。返ってきたメッセージで検索すると解決できるかもしれません herokuへのログインが必要になる場合はheroku loginを実行してください
git push heroku master

herokuにプッシュを行ない、それをherokuが自動的にデプロイします

botがオンラインになっていれば成功です

git add . && git commit -m "initial commit"

ソースを変更するたびに上記のコマンドを実行して開発を進めます

heroku scale worker = 1

最後に、デフォルトの状態だと少し経つとbotが停止してしまうので上記のコマンドでworkerモードに変更する必要があります


雑にまとめたのであとで書き直します