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

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

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

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

Python

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

解決済

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

mavis95
mavis95

総合スコア0

LINE Messaging API

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

Python

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

1回答

0評価

0クリップ

1570閲覧

投稿2019/05/06 08:56

編集2022/01/12 10:58

前提・実現したいこと

下記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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

mavis95
mavis95

2019/05/06 09:54

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

2019/05/06 10:10

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

2019/05/08 12:46

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

2019/05/08 15:05 編集

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

2019/05/09 12:22

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

2019/05/09 13:21

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

2019/05/09 22:23

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

2019/05/10 00:11

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

2019/05/11 06:22

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

2019/05/11 06:46

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

2019/05/14 11:41

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

2019/05/14 12:44

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

2019/05/15 11:46

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

2019/05/15 12:33

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

2019/05/19 00:15

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

2019/05/19 02:26

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

2019/05/19 12:59

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

2019/05/19 13:36

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

2019/05/19 13:38

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

2019/05/20 12:10

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

2019/05/20 12:23

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

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

LINE Messaging API

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

Python

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