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

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

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

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

Python

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

Q&A

解決済

1回答

1969閲覧

”Webhookが無効なHTTPステータスコードを返しました(期待されるステータスコードは200です)”と表示される

mavis95

総合スコア13

LINE Messaging API

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

Python

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

0グッド

0クリップ

投稿2019/05/06 08:56

編集2019/05/19 13:01

前提・実現したいこと

下記urlを参考におうむ返しするlinebotの作成がしたい。
https://qiita.com/krocks96/items/67f7510b36945eb9689b

https://cppx.hatenablog.com/entry/2017/10/31/165128

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

LINE developersでWebhockURLの接続確認をすると、以下のようなエラーがでます。

エラーメッセージ Webhookが無効なHTTPステータスコードを返しました(期待されるステータスコードは200です)

###使用コード

from flask import Flask, request, abort from linebot import ( LineBotApi, WebhookHandler ) from linebot.exceptions import ( InvalidSignatureError ) from linebot.models import ( MessageEvent, TextMessage, TextSendMessage, ) import os app = Flask(__name__) #環境変数取得 YOUR_CHANNEL_ACCESS_TOKEN = os.environ["YOUR_CHANNEL_ACCESS_TOKEN"] YOUR_CHANNEL_SECRET = os.environ["YOUR_CHANNEL_SECRET"] line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN) handler = WebhookHandler(YOUR_CHANNEL_SECRET) @app.route("/callback", methods=['POST']) def callback(): # get X-Line-Signature header value signature = request.headers['X-Line-Signature'] # get request body as text body = request.get_data(as_text=True) app.logger.info("Request body: " + body) # handle webhook body try: handler.handle(body, signature) except InvalidSignatureError: abort(400) return 'OK' @handler.add(MessageEvent, message=TextMessage) def handle_message(event): line_bot_api.reply_message( event.reply_token, TextSendMessage(text=event.message.text)) if __name__ == "__main__": # app.run() port = int(os.getenv("PORT", 5000)) app.run(host="0.0.0.0", port=port)

最新のログ

2019-05-14T01:04:30.070058+00:00 heroku[web.1]: State changed from crashed to starting 2019-05-14T01:04:33.567318+00:00 heroku[web.1]: Starting process with command `python main.py` 2019-05-14T01:04:35.732639+00:00 heroku[web.1]: State changed from starting to crashed 2019-05-14T01:04:35.717935+00:00 heroku[web.1]: Process exited with status 1 2019-05-14T01:04:35.634125+00:00 app[web.1]: File "main.py", line 1 2019-05-14T01:04:35.634167+00:00 app[web.1]: Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32 2019-05-14T01:04:35.634173+00:00 app[web.1]: ^ 2019-05-14T01:04:35.634226+00:00 app[web.1]: SyntaxError: invalid syntax 2019-05-14T06:45:54.457762+00:00 heroku[web.1]: State changed from crashed to starting 2019-05-14T06:45:58.905314+00:00 heroku[web.1]: Starting process with command `python main.py` 2019-05-14T06:46:01.255307+00:00 heroku[web.1]: State changed from starting to crashed 2019-05-14T06:46:01.239201+00:00 heroku[web.1]: Process exited with status 1 2019-05-14T06:46:01.151287+00:00 app[web.1]: File "main.py", line 1 2019-05-14T06:46:01.151319+00:00 app[web.1]: Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32 2019-05-14T06:46:01.151321+00:00 app[web.1]: ^ 2019-05-14T06:46:01.151323+00:00 app[web.1]: SyntaxError: invalid syntax 2019-05-14T11:25:31.000000+00:00 app[api]: Build started by user アドレス 2019-05-14T11:25:53.952041+00:00 heroku[web.1]: State changed from crashed to starting 2019-05-14T11:25:53.739231+00:00 app[api]: Deploy cbdbee86 by user アドレス 2019-05-14T11:25:53.739231+00:00 app[api]: Release v15 created by user アドレス 2019-05-14T11:25:58.079912+00:00 heroku[web.1]: Starting process with command `python main.py` 2019-05-14T11:26:00.176928+00:00 heroku[web.1]: State changed from starting to crashed 2019-05-14T11:26:00.203005+00:00 heroku[web.1]: State changed from crashed to starting 2019-05-14T11:26:00.077691+00:00 app[web.1]: File "main.py", line 1 2019-05-14T11:26:00.077716+00:00 app[web.1]: Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32 2019-05-14T11:26:00.077718+00:00 app[web.1]: ^ 2019-05-14T11:26:00.077744+00:00 app[web.1]: SyntaxError: invalid syntax 2019-05-14T11:26:00.129501+00:00 heroku[web.1]: Process exited with status 1 2019-05-14T11:26:02.000000+00:00 app[api]: Build succeeded 2019-05-14T11:26:03.449684+00:00 heroku[web.1]: Starting process with command `python main.py` 2019-05-14T11:26:05.367169+00:00 heroku[web.1]: State changed from starting to crashed 2019-05-14T11:26:05.350272+00:00 heroku[web.1]: Process exited with status 1 2019-05-14T11:26:05.295818+00:00 app[web.1]: File "main.py", line 1 2019-05-14T11:26:05.295864+00:00 app[web.1]: Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32 2019-05-14T11:26:05.295869+00:00 app[web.1]: ^ 2019-05-14T11:26:05.295873+00:00 app[web.1]: SyntaxError: invalid syntax 2019-05-14T11:27:03.227451+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/callback" host=アプリ名 request_id=a79d7fa3-4622-496a-9980-2ac9bb6ffab8 fwd="203.104.156.76" dyno= connect= service= status=503 bytes= protocol=https 2019-05-14T11:27:29.111776+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/callback" host=アプリ名 request_id=83591001-2da1-4c47-a7ce-a15ee6ec1a22 fwd="147.92.149.166" dyno= connect= service= status=503 bytes= protocol=https

補足情報(FW/ツールのバージョンなど)

・コードは下記サイトのmain.pyからコピペしています。
https://qiita.com/krocks96/items/67f7510b36945eb9689b

・作成したアプリケーションのURLをブラウザで検索するとApplication errorと表示されます。
解決しておうむ返しできるようにしたいです。よろしくお願いします。

追記

コマンドラインでmain.pyを実行すると以下のように構文エラーが出ました。

File "main.py", line 1 Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32 ^ SyntaxError: invalid syntax

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

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

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

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

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

mavis95

2019/05/06 09:54

urlありがとうございます。 ちなみにこのエラーが出ている場合はコードよりログを添付した方がよいのでしょうか?
mistn

2019/05/06 10:10

コードもログも記載するのが良いです。
mavis95

2019/05/08 12:46

コードはそのまま引用したので間違ってないかと思っております。 ログは最新のログを記載いたしました。
mistn

2019/05/08 15:05 編集

main.pyが無いと言われていますね。main.pyでファイルは保存しましたか? それと、参考にしたサイトが2つあるみたいですがコードはどっちのものを使っていますか?
mavis95

2019/05/09 12:22

main.pyで保存し直しました。 コードは1つ目のサイトのものを使用してます。
mistn

2019/05/09 13:21

main.pyで保存しても結果は同じでした?
mavis95

2019/05/09 22:23

保存しても接続確認ではWebhookが無効なHTTPステータスコードを返しました(期待されるステータスコードは200です)と表示され、botの応答もありません。(既読はつきますが)
mistn

2019/05/10 00:11

おかしいですね。もう一度ログを取って質問を編集してもらえますか
mavis95

2019/05/11 06:22

ログ更新いたしました。
mistn

2019/05/11 06:46

構文エラーがでていますね。どこかコードを変えた箇所ありませんか。 どこも変えていないという場合でもコピペミスなどもあり得ますのでもう一度プログラムをコピペして試してみてください。
mavis95

2019/05/14 11:41

使用コードと最新のログを追記しました。コードコピペし直しましたが、構文エラーが出ている気がします。
mistn

2019/05/14 12:44

qiitaの記事通りにやるとpythonのバージョンは3.6.3になるはずですがログを見ると3.7.1になっているようです。設定ファイルが間違っていたりはしないでしょうか? 私もqiitaの記事通りにやってみましたがオウム返しをするbotがきちんと動きました。接続確認では同様にエラーが起こりますが。
mavis95

2019/05/15 11:46

設定ファイル(runtime.txt)を確認したところpython3.7.1と記載していました。私が使用しているバージョンはpython3.7.1なんですけれども3.6.3をインストールし直す必要がありますか?
mistn

2019/05/15 12:33

手元の環境はとりあえずそのままでいいです。runtime.txtをpython-3.6.3に書き直しましょう。それと念のため他の設定ファイルも間違っていないか確認しましょう。
mavis95

2019/05/19 00:15

python3.6.3に書き直しましたがダメですね、、、
mistn

2019/05/19 02:26

そうですか。そうなるともう一度最初からやり直すぐらいしか思いつきませんね。 ちなみに手元の環境でmain.pyは実行できますか?
mavis95

2019/05/19 12:59

コマンドラインでmain.pyを実行したら構文エラーが出ました。(追記に結果を記載しています) Python3.7.1の表記が間違っているのでしょうか。
mistn

2019/05/19 13:11

正直その構文エラーの原因がよくわからないんですよね。main.pyの1行目に Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32 なんて文書いてませんよね?
mavis95

2019/05/19 13:27 編集

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32はpythonのエディタ(python3.7.1 shell)を開くと勝手に記入されています。
mistn

2019/05/19 13:36

原因はそれですね。そのエディタでプログラムを新しく書くときは File→New File で書き始めるようにしましょう。 今保存されているmain.pyの3行目までは Python ~~~~~ Type "help" ~~~~ >>> のようになっていませんか?それらはすべて消して保存してください。 そして再度実行してみてください。多分うまくいくと思います。
mistn

2019/05/19 13:38

それよりも一度書き直したほうが確実ですね。File→New File をしてから再度プログラムをコピペしてみてください。
mavis95

2019/05/20 12:10

動きました泣 初歩的なミスにも気がつきませんでした。本当にありがとうございます。
mistn

2019/05/20 12:23

それはよかったです。 今度から質問するときはコードはそのまま質問に記載するようにしてください。今質問にあるコードと実際にファイルに保存されていたコードは違っていたはずです。 それと、この質問は自己解決にしておいてください。
guest

回答1

0

自己解決

main.pyの構文を修正すると動きました

投稿2019/05/20 22:56

mavis95

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問