HerokuとPythonでTelegramのbotを作成する

親に作ってって言われたんで作る。自分の仕事なんだし自分で作れや。
 

使用したサイト・ツール

  • heroku
  • git

 

手順

herokuのインストール手順は下記参照。
https://qiita.com/mickie895/items/9d9e95f2b2efb1b961df

まずはTelegramのアカウントを作り、botのアクセストークンを取得する。手順は下記参照のこと。
https://telegram-creators.bacronym.net/wiki/bot-entry/

Echobotの作成・調整

下記アドレスのgithubのソースをgit-cloneし、(プロジェクト名)/examples/echobot2.pyを一つ上の階層にコピーし、"main.py"にリネームする。
https://github.com/python-telegram-bot/python-telegram-bot

このファイルの56行目の"TOKEN"をbotfatherから受け取ったアクセストークンに差し替えればいいが、ソースコードを公開したときにアクセストークンが流出しないようにしたほうが良いと思う。
そのためには下記のようにソースコードを一部変更する。

18行目~21行目を変更

import logging
import os

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters

ACCESS_TOKEN = os.environ["TELEGRAM_ACCESS_TOKEN_ONE"]


56行目付近を変更

    updater = Updater(ACCESS_TOKEN, use_context=True)

herokuを使うための設定

herokuでアプリを動かすためにはProcfileという名前のファイルをプロジェクトのディレクトリに入れる必要がある。
下記がファイルの中身。

web: python3 main.py

herokuを使わないんだったらmain.pyをどうにかして実行すれば大丈夫。

herokuでアプリを登録

herokuで新しいアプリを作り、git pushする。ここは日本語の解説も多いので省略。

そして実行したが投稿が帰ってこない……?logを見てみる。

2020-05-11T06:46:27.820936+00:00 app[api]: Scaled to web@1:Free by user mken.mickie@gmail.com
2020-05-11T06:47:32.345476+00:00 heroku[web.1]: State changed from starting to crashed
2020-05-11T06:47:32.348520+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-11T06:48:36.017510+00:00 heroku[web.1]: State changed from starting to crashed

1分程度でクラッシュしてる上にログが出てないぞ……?
最低限の用は済んだし、一旦ここで区切って余力があれば追加を調べることにする。