質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3027閲覧

Python + Flask+ Heroku のLINE bot でエラー

jhkifsj

総合スコア15

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/11/06 15:51

編集2018/11/06 15:53

前提・実現したいこと

以下の記事に従って,LINEのボットを作ろうとしています。

https://note.mu/ellreka/n/nf2b746578e73

しかし,手順通りにすすめてもエラーになってしまいます。

慣れないのでログファイルを見ようにもわかりません。
よろしくおねがいします。

発生している問題・エラーメッセージ

heroku logs --tail -a 【自分のappの名前】
の実行結果

2018-11-06T15:15:27.000000+00:00 app[api]: Build started by user mail@example.com 2018-11-06T15:15:43.681500+00:00 app[api]: Release v7 created by user mail@example.com 2018-11-06T15:15:43.681500+00:00 app[api]: Deploy 11ee8810 by user mail@example.com 2018-11-06T15:15:44.411877+00:00 heroku[web.1]: State changed from crashed to starting 2018-11-06T15:15:48.182520+00:00 heroku[web.1]: Starting process with command `gunicorn app:app --log-file -` 2018-11-06T15:15:51.662563+00:00 app[web.1]: [2018-11-06 15:15:51 +0000] [4] [INFO] Starting gunicorn 19.9.0 2018-11-06T15:15:51.663430+00:00 app[web.1]: [2018-11-06 15:15:51 +0000] [4] [INFO] Listening at: http://0.0.0.0:56746 (4) 2018-11-06T15:15:51.663582+00:00 app[web.1]: [2018-11-06 15:15:51 +0000] [4] [INFO] Using worker: sync 2018-11-06T15:15:51.669905+00:00 app[web.1]: [2018-11-06 15:15:51 +0000] [10] [INFO] Booting worker with pid: 10 2018-11-06T15:15:51.718031+00:00 app[web.1]: [2018-11-06 15:15:51 +0000] [11] [INFO] Booting worker with pid: 11 2018-11-06T15:15:52.412876+00:00 heroku[web.1]: State changed from starting to up 2018-11-06T15:15:52.000000+00:00 app[api]: Build succeeded 2018-11-06T15:15:53.044105+00:00 app[web.1]: [2018-11-06 15:15:53 +0000] [10] [ERROR] Exception in worker process 2018-11-06T15:15:53.044128+00:00 app[web.1]: Traceback (most recent call last): 2018-11-06T15:15:53.044131+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker 2018-11-06T15:15:53.044133+00:00 app[web.1]: worker.init_process() 2018-11-06T15:15:53.044135+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process 2018-11-06T15:15:53.044136+00:00 app[web.1]: self.load_wsgi() 2018-11-06T15:15:53.044138+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi 2018-11-06T15:15:53.044139+00:00 app[web.1]: self.wsgi = self.app.wsgi() 2018-11-06T15:15:53.044142+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi 2018-11-06T15:15:53.044144+00:00 app[web.1]: self.callable = self.load() 2018-11-06T15:15:53.044145+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load 2018-11-06T15:15:53.044146+00:00 app[web.1]: return self.load_wsgiapp() 2018-11-06T15:15:53.044148+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp 2018-11-06T15:15:53.044150+00:00 app[web.1]: return util.import_app(self.app_uri) 2018-11-06T15:15:53.044151+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app 2018-11-06T15:15:53.044153+00:00 app[web.1]: __import__(module) 2018-11-06T15:15:53.044154+00:00 app[web.1]: File "/app/app.py", line 18, in <module> 2018-11-06T15:15:53.044157+00:00 app[web.1]: channel_secret = os.environ('LINE_CHANNEL_SECRET') 2018-11-06T15:15:53.044165+00:00 app[web.1]: TypeError: '_Environ' object is not callable 2018-11-06T15:15:53.044895+00:00 app[web.1]: [2018-11-06 15:15:53 +0000] [10] [INFO] Worker exiting (pid: 10) 2018-11-06T15:15:53.084707+00:00 app[web.1]: [2018-11-06 15:15:53 +0000] [11] [ERROR] Exception in worker process 2018-11-06T15:15:53.084711+00:00 app[web.1]: Traceback (most recent call last): 2018-11-06T15:15:53.084713+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker 2018-11-06T15:15:53.084715+00:00 app[web.1]: worker.init_process() 2018-11-06T15:15:53.084720+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process 2018-11-06T15:15:53.084722+00:00 app[web.1]: self.load_wsgi() 2018-11-06T15:15:53.084724+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi 2018-11-06T15:15:53.084726+00:00 app[web.1]: self.wsgi = self.app.wsgi() 2018-11-06T15:15:53.084727+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi 2018-11-06T15:15:53.084729+00:00 app[web.1]: self.callable = self.load() 2018-11-06T15:15:53.084731+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load 2018-11-06T15:15:53.084732+00:00 app[web.1]: return self.load_wsgiapp() 2018-11-06T15:15:53.084734+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp 2018-11-06T15:15:53.084735+00:00 app[web.1]: return util.import_app(self.app_uri) 2018-11-06T15:15:53.084737+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app 2018-11-06T15:15:53.084739+00:00 app[web.1]: __import__(module) 2018-11-06T15:15:53.084740+00:00 app[web.1]: File "/app/app.py", line 18, in <module> 2018-11-06T15:15:53.084742+00:00 app[web.1]: channel_secret = os.environ('LINE_CHANNEL_SECRET') 2018-11-06T15:15:53.084749+00:00 app[web.1]: TypeError: '_Environ' object is not callable 2018-11-06T15:15:53.086206+00:00 app[web.1]: [2018-11-06 15:15:53 +0000] [11] [INFO] Worker exiting (pid: 11) 2018-11-06T15:15:53.218885+00:00 app[web.1]: [2018-11-06 15:15:53 +0000] [4] [INFO] Shutting down: Master 2018-11-06T15:15:53.220781+00:00 app[web.1]: [2018-11-06 15:15:53 +0000] [4] [INFO] Reason: Worker failed to boot. 2018-11-06T15:15:53.374930+00:00 heroku[web.1]: Process exited with status 3 2018-11-06T15:15:53.392462+00:00 heroku[web.1]: State changed from up to crashed 2018-11-06T15:18:00.921009+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/callback" host=mybot.herokuapp.com request_id=0a9d9c86-7d65-495b-b51e-9ab7620539e8 fwd="203.104.146.155" dyno= connect= service= status=503 bytes= protocol=https

その他のファイルは以下のとおりです。

runtime.txt

python-3.6.6

requirements.txt

Flask==1.0.2 line-bot-sdk==1.8.0 gunicorn==19.9.0

Procfile

web: gunicorn app:app --log-file -

試したこと

他のチュートリアル(https://www.casleyconsulting.co.jp/blog/engineer/3028/とか)でも,うまく行きません

補足

前述のウェブページには載っていませんでしたが,push時にエラーが出たので,以下を実行しました。

heroku git:remote -a 【自分のappの名前】

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

括弧の形が違うようです。

channel_secret = os.environ('LINE_CHANNEL_SECRET') ↓ channel_secret = os.environ['LINE_CHANNEL_SECRET']

上のように修正して、試してみてください

投稿2018/11/19 06:35

niciyan2486

総合スコア62

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jhkifsj

2018/11/22 16:55

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問