lisz-works

プログラミングと興味を貴方に

Discord API(discord.py)をテンプレートからHerokuでデプロイしてみた

【スポンサーリンク】

Discord

こんにちは、lisです!

Discordでbotを作るためにbotアプリ自体を作成しました。

今回はbotの中身を作るために、サンプル(テンプレート)を組込んでデプロイ→動作確認までしました!

discord.pyを使用するためのテンプレート

discord.pyを使用するためのテンプレートを公開している方がいたのでこれを元にやりました。

qiita.com

ここに書かれているものを一通りやればベースはOKですが、書かれていること以外でやったことを書いていきます。

テンプレートをインポート

テンプレートはGitHubの機能でインポートできるようなのですが……

間違えて先にリポジトリを作成してしまいました。

なのでDLして展開→gitに登録しました。

# プロジェクトのディレクトリにファイルをDLして展開
❯ wget https://github.com/DiscordBotPortalJP/discordpy-startup/archive/refs/heads/master.zip
❯ unzip master.zip
❯ mv discordpy-startup-master/* .
❯ rm -rf discordpy-startup-master master.zip
# gitに追加
❯ git add .
❯ git commit "add template files"
❯ git push

実施手順

基本的には「Discord Bot 最速チュートリアル【Python&Heroku&GitHub】」の流れに沿って進めていきました。

qiita.com

実行してみたらうまくbotが動いてくれなかったので、追加で何かした感じです。

ファイル変更箇所

この辺りを変更しました。変更後、pushまでしました。

・Procfile

プロセス名をGitHubのリポジトリと同じにしないといけないのかと思い変更しました。
変更しなくてもいいような気がしています。

diff --git a/Procfile b/Procfile
index d0caaaa..877b39d 100644
--- a/Procfile
+++ b/Procfile
@@ -1 +1 @@
-discordbot: python discordbot.py
+bot: python discordbot.py

・app.json

こちらも名前リポジトリ名と合わせたのと、リポジトリを自分のモノに合わせた方がいいと思い変更しました。
説明も適宜変更しました。

diff --git a/app.json b/app.json
index 7540e5b..ee18ebe 100644
--- a/app.json
+++ b/app.json
@@ -1,6 +1,6 @@
 {
-  "name": "discordpy-startup",
-  "description": "Herokuでdiscord.pyを始めるテンプレート",
-  "repository": "https://github.com/DiscordBotPortalJP/discordpy-startup",
+  "name": "bot",
+  "description": "HerokuでDiscord API",
+  "repository": "https://github.com/liszwork/bot",
   "keywords": ["python", "discord", "bot"]
 }

ビルドの確認

push後にheroku logsをしてみてBuild succeededが出てればOKです。

❯ heroku logs --tail -a <アプリ名>
...
2021-10-23T04:49:04.000000+00:00 app[api]: Build succeeded

ファイル変更はこのときエラーが出たので色々いじくった結果行ったものでした。

ResourcesのFree Dynosを再設定

参考にしたQiitaでは手順上でこのトグルボタンをONにしていました。

しかしぼくが実施したときは、初期状態でONになっていたためスルーしていました。

そしてここまでで書いた通り、いじくったりpushしてビルドさせたりしました。

「ビルド完了してるのにbotがうまく動かん……」

と思って色々見ていると、ここがOFFになっていました。

ということでここを「8. Dynosの設定」同様、ONに設定しなおしました。

この状態でheroku logsを確認してみると

❯ heroku logs --tail -a <アプリ名>
...
2021-10-23T09:25:35.429607+00:00 heroku[bot.1]: Starting process with command `python discordbot.py`
2021-10-23T09:25:36.278170+00:00 heroku[bot.1]: State changed from starting to up

スタートしてますね!

Discordでbotも反応してくれました!

参考

コチラを参考にしました。ありがとうございました!

qiita.com

あとがき

Discord API(discord.py)をテンプレートからHerokuでデプロイしてみたでした!

ここから肉付けしていきたいと思っています。