実現したい事
Lineのapiを使用してオウム型のボットを作成しています。
発生している問題・エラーメッセージ
現状はherokuまでのデプロイはできているのですが、いざボットにメッセージを送って見ると返信が来ません(自動応答のメッセージは来る)。webhookに接続する際に「Webhookが無効なHTTPステータスコードを返しました(期待されるステータスコードは200です)」というエラーが出ているので、ここが原因かなと踏んでいます。ちなみに、heroku logsでエラー内容を確認すると503(サーバーに関するエラー)と出ます。ネットで調べるとwebhookのエラーは機能には関係ないと書かれてるものもありますが、正直ここ以外に原因の検討がつきません。
上記エラーの解決方法がわかる方、知恵をお貸し頂けないでしょうか?
該当のソースコード
Python
1from flask import Flask, request, abort 2 3from linebot import ( 4 LineBotApi, WebhookHandler 5) 6from linebot.exceptions import ( 7 InvalidSignatureError 8) 9from linebot.models import ( 10 MessageEvent, TextMessage, TextSendMessage, 11) 12import os 13 14app = Flask(__name__) 15 16 17YOUR_CHANNEL_ACCESS_TOKEN = os.environ["LantpFiJX9Ja24IZkkHigDI2bv\ 183S38JOmgFxAN7jxRY1ZaFsY\ 19bceLhLaVENrqatHz+SzTylw\ 20M1WniLT/Q01h5hprJzzIYlw\ 21KlF4Vg/7MYGHt9LqdZhbF8Ng\ 22fCe0k478GRxU13rJ5IWxQcj3QDx\ 23GL2QdB04t89/1O/w1cDnyilFU="] 24YOUR_CHANNEL_SECRET = os.environ["5cc2db76678a82e1454416e7aba39422"] 25 26line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN) 27handler = WebhookHandler(YOUR_CHANNEL_SECRET) 28 29 30@app.route("/callback", methods=['POST']) 31def callback(): 32 33 signature = request.headers['X-Line-Signature'] 34 35 body = request.get_data(as_text=True) 36 app.logger.info("Request body: " + body) 37 38 try: 39 handler.handle(body, signature) 40 except InvalidSignatureError: 41 abort(400) 42 43 return 'OK' 44 45 46@handler.add(MessageEvent, message=TextMessage) 47def handle_message(event): 48 line_bot_api.reply_message( 49 event.reply_token, 50 TextSendMessage(text=event.message.text)) 51 52 53if __name__ == "__main__": 54 port = int(os.getenv("PORT", 5000)) 55 app.run(host="0.0.0.0", port=port)
試したこと
main.pyの文法エラーの訂正。
環境変数の再設定。
app = Flask(name)の下にapp.debug = Falseを追加。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
エディタはpycharmです。