こんにちは、lisです!
Discordでbotを作るためにbotアプリ自体を作成しました。
今回はbotの中身を作るために、サンプル(テンプレート)を組込んでデプロイ→動作確認までしました!
discord.pyを使用するためのテンプレート
discord.pyを使用するためのテンプレートを公開している方がいたのでこれを元にやりました。
ここに書かれているものを一通りやればベースは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】」の流れに沿って進めていきました。
実行してみたらうまく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も反応してくれました!
参考
コチラを参考にしました。ありがとうございました!
あとがき
Discord API(discord.py)をテンプレートからHerokuでデプロイしてみたでした!
ここから肉付けしていきたいと思っています。