Q&A
前提
chrome OSのlinuxコンテナでpythonを実行しています。
実現したいこと
以下のようなエラーが発生しbotを立ち上げることができません。
ファイルに問題があるということはわかったのですがどこにファイルが有るのか、どう改善すればよいのかがわかりません。
発生している問題・エラーメッセージ
File "/usr/lib/python3.9/os.py", line 679, in __getitem__ raise KeyError(key) from None
該当のソースコード
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["アクセストークンを記述しています"] 18YOUR_CHANNEL_SECRET = os.environ["チャンネルシークレットを記述しています"] 19 20line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN) 21handler = WebhookHandler(YOUR_CHANNEL_SECRET) 22 23@app.route("/callback", methods=['POST']) 24def callback(): 25 # get X-Line-Signature header value 26 signature = request.headers['X-Line-Signature'] 27 28 # get request body as text 29 body = request.get_data(as_text=True) 30 app.logger.info("Request body: " + body) 31 32 # handle webhook body 33 try: 34 handler.handle(body, signature) 35 except InvalidSignatureError: 36 abort(400) 37 38 return 'OK' 39 40 41@handler.add(MessageEvent, message=TextMessage) 42def handle_message(event): 43 line_bot_api.reply_message( 44 event.reply_token, 45 TextSendMessage(text=event.message.text)) 46 47 48if __name__ == "__main__": 49# app.run() 50 port = int(os.getenv("PORT", 5000)) 51 app.run(host="0.0.0.0", port=port)
補足情報(FW/ツールのバージョンなど)
python3.9.2
chromium OS linuxコンテナ
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/08/10 05:32
2022/08/10 05:36
2022/08/10 06:09
2022/08/10 06:25 編集
2022/08/10 06:48
2022/08/10 06:50
2022/08/10 07:03