【学習メモ】LINEbot作成時のエラー対応まとめ(bot未完成)
前回に引き続き毎日少しずつLINEbotのエラー対応中。
エラーあと1つっぽい所まで来たけど相変わらず調べて対応してるだけで、全くもってブラックボックス。
自分用のメモとして、一旦これまでで自分が詰まったところをまとめておきます。
まとめと言っても正しい理解か不安だし初歩的なミスすぎたりするけれど、
どこかの初学者に役立つかもしれないのでね!
- 開発環境
- 参考
- エラー①:アクセストークンと秘密鍵の環境変数が違った
- エラー②:requirements.txtに不要なライブラリが残っていた
- エラー③:runtime.txt "python"のpが大文字だった
- 未解決エラー
開発環境
Python 3.6.6
Heroku
参考
Python を使ってオウム返し「LINE ボット」を作ってみる - まえちゃんろぐ
こちらを参考に作業しています。
エラー①:アクセストークンと秘密鍵の環境変数が違った
アクセストークンと秘密鍵に、指定された環境変数とは違う変数を設定してエラーになっていました。
どうやらどこかのタイミングで公式コード内の変数が変わっているようで、
色んなブログを参考にする間に新しい変数のコードをコピペし、
古い変数で設定する方法を参照していたみたいです。
旧?)LINE_CHANNEL_ACCESS_TOKEN
新?)YOUR_CHANNEL_ACCESS_TOKEN
旧?)LINE_CHANNEL_SECRET
新?)YOUR_CHANNEL_SECRET
コピペせずコードも読まなきゃダメですね…。
エラー②:requirements.txtに不要なライブラリが残っていた
requirements.txtにFlaskとLine-bot-sdk以外のライブラリも残してました。
それぞれのバージョン確認をサボって
$ pip freeze > requirements.txt
で吐き出された全てのライブラリを残したままaddしたのですが、
関係ないものが入ってるとherokuのデプロイでエラーが出るようです。
エラー③:runtime.txt "python"のpが大文字だった
runtime.txtにpythonのバージョンを記載していますが、Pythonと大文字で書いたところherokuデプロイ時に
「アンタのPython3.6.6は対応してないバージョンだから、python3.6.6に変えなさいよね!」
というエラーが出て、一瞬意味がわかりませんでした。
pythonと小文字に変更して解決。
一見些細に思える事でもエラーの原因になる事を身をもって学びました。
未解決エラー
残ったエラーコードは以下。
at=error code=H14 desc="No web processes running" method=POST path="/callback" ~省略~ dyno= connect= service= status=503 bytes= protocol=https
調べていたらProcfileに問題があるっぽい情報もあったのですが、開発環境が少し違うので自分の場合に当てはまるのかわからず。
Messaging APIのWebhook URLも接続エラーになっているのですが、原因は同じ所にある??それとも別??
pythonどころかIT全般知識ほぼゼロなので全くわかりません…。