無知でもdiscord-bcdicebotをHerokuで動かす

この記事は約8分で読めます。

この記事は、以下の人向け。

  • Discordでダイスボットを使いたい
  • 人から借りるのではなく自力で設置したい
  • Git? Heroku? なにそれ?

「discord-bcdicebot」公式説明の「中級者以上向け:heroku を使って動かす手順」だけではわからないけれどやってみたい人への補足説明。

といっても他のサイトに解説を頼った部分もあるけど。

discord-bcdicebotのマニュアルはこちら。

なおdiscord-bcdicebotをHerokuで無料で1ヶ月間動かすためには、Herokuへクレジットカード情報を登録する必要がある。そうすると無料で動かせる範囲がちょっと広がって、結果、足りるのだ。クレジットカード情報を登録していない状態で動かせるのは3週間くらい?

Herokuは2022年11月28より無料プランが無くなる。料金プランは各自で確認してほしい。

無料の代替サービスは今後探してみる。

まずはローカルで動かす

まずはマニュアルの「サーバに導入する手順」を読みながらローカル(自分のパソコン上)で動かしてみよう。話はそれからだ。

「中級者以上向け:heroku を使って動かす手順」を噛み砕いて解説

GitもHerokuもわからない人でもHerokuを使って動かせるようになるための解説はここから。

ちょっとずつ噛み砕いていくよ。

「1.Git を導入します。」の段階でやること

Gitというソフトウェアをダウンロードしてインストールする。

これは何のために必要かというと、GitHubからプログラムのソースコードをもらってくるために使う。

英語のサイトだが、画面右のほうに「Download for (利用中のOS)」とあるので、そこをクリックしてダウンロードしてインストール。

その後はGitHubのアカウントも作り、Gitで接続できるようにしなければならない。そこはこちらのサイトが詳しかったので、こちらにお任せする(Windows向け)。Gitのインストールも詳しく解説してあるよ。

上記サイトを見ながら「4.GitHubにSSHの設定をする」までやってこよう! 「5.GitHubにプッシュする」以降は不要なので戻ってきてね。

Windows以外のOSの人は自力で調べてみよう。といっても他はMacだろうか? Macの情報のほうが豊富だと思う。

「2.Heroku のアカウントを作成します。」でやること

ここではHerokuのアカウントを作成するだけ。右上の「新規登録」からどうぞ。

なおHerokuは大部分が英語のサービスなのでご注意を。ところどころ日本語化されてはいるんだけど……。

「3.Heroku CLI を導入します。」でやること

ここでは「Heroku CLI」というソフトウェアを導入する。コマンドラインでHerokuが実行できるツールで、Herokuを利用するためには必須。

discord-bcdicebotのページからリンクされているインストールガイドは英語なのだが、右上に「日本語に切り換える」というボタンがある。もしくは下のリンクも日本語。

「インストールの検証」までやってこよう。

なお、Herokuをインストールするディレクトリのパスは念のためメモしておこう。

Herokuが動かない場合

コマンドライン(GitBashやPowerShellなど)で「Heroku」と打つと「そんなコマンドはない」というようなエラーが出る場合は、環境変数が上手く設定できていない。

普段使っているユーザーのほかに管理者ユーザーが別途いる場合など起きがち。

Heroku CLIをインストールしたディレクトリのパスをユーザー環境変数かシステム環境変数に追加すればOK。

やり方はOSによるが、Windows10の場合は、まずスタートボタン→設定→システム→詳細情報→システムの詳細設定を開く。「詳細情報」も「システムの詳細設定」も結構下のほうにあるので注意。

そうすると「システムのプロパティ」というウィンドウが開くので、右下の「環境変数」というボタンを押せば環境変数が設定できる。

システム環境変数、ユーザー環境変数のどちらでもいいが「Path」という項目の中にHerokuをインストールしたディレクトリのパスを入れよう。Pathの中の既存のデータや、他の項目は絶対編集しないこと。

編集し終わったらまたHerokuのコマンドを実行してみよう。動かない場合は、一度OSを再起動してみよう。それでも動かなければパスが間違っていると思う。

「4.GitHub からソースコードを clone してきます。」でやること

ここからはひたすらコマンドを打つ。Windowsの場合はPowerShellを起動しよう。他のOSの場合もGitBashでなくOS標準のシェルのほうがいいと思う。

起動したら以下を入力。

git clone git@github.com:Shunshun94/discord-bcdicebot.git

上手くいけばそれらしきメッセージが出る。エラーっぽかったらエラー文で検索してみよう。

一番引っかかりやすいのはGitHubのSSH情報作成と登録だと思う。

「5~9.clone してきたディレクトリ内で~」でやること

git cloneを実行すると、「discord-bcdicebot」というディレクトリができる。なので、PowerShellなどさっきから使っているシェルで以下のように入力して移動する。

cd discord-bcdicebot

その後は、discord-bcdicebotのマニュアルに沿ってコマンドを入力する。

「heroku login」を打つと「heroku: Press any key to open up the browser to login or q to exit:」(訳:「何かキーを打つとブラウザを起動してログインします。qを押すとやめます:」)と出るので、適当なキーを押してブラウザからログインする。

あとはdiscord-bcdicebotのマニュアル通りにHerokuでの環境変数を設定する。

コマンドを打って設定するのが苦手な人向け

コマンドを打ちたくない人は、Herokuのサイト上から環境変数を設定することもできる。

HerokuのDashboardからデプロイしたアプリを開こう。

アプリ名を押すと個別のページに入る。そこでアプリ名下のメニューバーみたいなところから「Setting」を押すと、アプリの設定ができる。

環境変数は「Config Vars」欄で設定する。

「KEY」にはマニュアル中で「heroku config:set」と「=」の間にある文字列を入れ(例:DISCORD_BOT_TOKEN、BCDICE_API_URLなど)、「VALUE」には=の右側に書く文字列を入れる。BOTのトークンだとか、ダイスAPIのURLだとか。最後にAddを押すのを忘れずに。

「10.Heroku の Dashboard から worker を起動します。」でやること

HerokuのDashboardからデプロイしたアプリを開く。

開いたらアプリ名下のメニューバーみたいなところから「Resources」をクリックする。そうするとWorkerのオンオフができるので、右端のペンボタンを押す。

ペンを押すとオンオフが切り換えられるようになるので、オンにして、Confirmボタンを押そう。

これでWorkerが起動し、設定が合っていればダイスボットがサーバーにログインするはずだ。

まだサーバーへの招待を済ませていない人はdiscord-bcdicebotのマニュアルの「サーバに導入する手順」の「詳細1. ダイスボットを登録し、サーバに導入する」を見てやってみよう。

ボットが動かない場合

動かない場合は、アプリ名と同じ段に「More」というボタンがあるので、そこから「View Log」を選ぶとログが表示できる。エラーが起きていれば何か書き込まれているはず。

環境変数が合っているかどうかを確認してみるのも良いと思う。「Setting」の「Config Vars」欄から確かめてみよう。

それでも動かない場合は、同じ設定でローカル(自分のパソコン上)で動かせるかを確認しよう。

無事に動いたらやる設定

Herokuで1ヶ月間discord-bcdicebotを動かし続けるためには、クレジットカード情報を登録しなければならない。

というわけで、右上の人っぽいアイコンを押して「Account settings」から情報登録をしよう。

クレジットカード情報は「Billing」から登録できる。

クレジットカード情報を登録するなら、「Account」の「Multi-Factor Authentication」から多要素認証もオンにしておこう。複数を設定するのがオススメだが、ワンタイムパスワードとリカバリコードの組み合わせが一番お手軽かな。

参考にしたページ

おわりに

discord-bcdicebotをHerokuで動かしてみたくなって試してみた。その結果、何も知らないとこの説明じゃ無理だよなぁと思ったので、情報を書き残してみた。

そもそも何も知らない人がHerokuで自力でダイスボット動かそうと思うのかはよくわからないが……。

ちなみにdiscord-bcdicebotは少し使ってはみたけれど、結局目的に合うbotを自作してしまって、そっちをHerokuで動かしている。自作したbotはまだ勉強しながらいろいろ試している段階なので、そっちの話もいずれまたできたらいいな。

タイトルとURLをコピーしました