前提・実現したいこと
まずはこのページを見てくださりありがとうございます。
ページの説明が長く、申し訳ございません。
アドバイス、助言くださると大変助かります。
そして本題ですが、やりたいことと致しましては、app.pyがherokuで動作しているため、サーバ内にある、test.py、test.txtの数値を参照できないという問題があり、herokuを使わずにサーバ上でプログラムを常に動作させたいということです。
app.pyはLINE Messaging APIのサンプルプログラムをいただき、少し編集したものです
サーバについて無知なもので数時間悩みましたが解決策がうまくいかず、質問させていただいております。
LINEのWebhook URL は現在herokuのものを登録しています。ここを変えなければいけないことはわかっているのですが、何に変えればいいのか、その後の流れがいまいち掴めず、困っています。
調べたところ自前のサーバを使う際にはPHPを記述しなければならないのでしょうか?
該当のソースコード
python
1#app.pyのコード 2from flask import Flask, request, abort 3 4from linebot import ( 5 LineBotApi, WebhookHandler 6) 7from linebot.exceptions import ( 8 InvalidSignatureError 9) 10from linebot.models import ( 11 MessageEvent, TextMessage, TextSendMessage,ImageSendMessage, 12) 13import datetime 14import test #test.pyをインポート 15 16 17 18app = Flask(__name__) 19 20 21line_bot_api = LineBotApi('') 22handler = WebhookHandler('') 23 24 25@app.route("/") 26def test(): 27 return "ok" 28 29 30@app.route("/callback", methods=['POST']) 31def callback(): 32 # get X-Line-Signature header value 33 signature = request.headers['X-Line-Signature'] 34 35 # get request body as text 36 body = request.get_data(as_text=True) 37 app.logger.info("Request body: " + body) 38 39 # handle webhook body 40 try: 41 handler.handle(body, signature) 42 except InvalidSignatureError: 43 print("Invalid signature. Please check your channel access token/channel secret.") 44 abort(400) 45 46 return 'OK' 47 48 49@handler.add(MessageEvent, message=TextMessage) 50def handle_message(event): 51 dt_now = datetime.datetime.now() 52 jst_hour=dt_now.hour+9 53 54 55 56 57 58 59 else: 60 61 if event.message.text=="A": 62 pec=test.main() 63 line_bot_api.reply_message( 64 event.reply_token, 65 TextSendMessage(text=pec))#test.pyの値を参照できていないため、ここで既読無視状態になる 66 67 elif event.message.text=="B": 68 line_bot_api.reply_message( 69 event.reply_token, 70 TextSendMessage(text=f"現在のBの混雑度は??%です。")) 71 72 elif event.message.text=="C": 73 line_bot_api.reply_message( 74 event.reply_token, 75 TextSendMessage(text=f"現在のCの混雑度は??%です。")) 76 else: 77 line_bot_api.reply_message( 78 event.reply_token, 79 TextSendMessage(text=f"入力が間違っています。もう一度入力してください")) 80 81 82 83if __name__ == "__main__": 84 app.run() 85
```text [15.75, 16.50, 18.00, 18.00, 19.00, 21.50, 23.75, 25.50, 16.00, 16.25, 17.25, 18.00, 19.50, 22.75, 23.25, 23.75, 15.00, 16.00, 16.50, 18.00, 19.50, 22.50, 22.50, 22.25, 15.00, 15.25, 15.50, 16.50, 18.50, 21.00, 20.00, 19.00, 15.00, 15.50, 15.25, 15.50, 15.75, 15.25, 16.00, 15.75, 15.75, 14.75, 15.50, 16.00, 15.50, 16.25, 15.50, 16.00, 14.50, 14.75, 15.25, 15.00, 15.50, 15.75, 15.75, 15.50, 14.25, 14.00, 15.00, 14.50, 14.75, 14.25, 14.25, 14.75, ] [16.25, 16.75, 17.75, 18.25, 19.25, 21.75, 23.75, 26.00, 15.50, 15.75, 17.00, 18.00, 19.25, 22.25, 23.25, 24.00, 15.50, 15.50, 16.50, 18.00, 19.25, 22.50, 22.50, 22.75, 15.00, 15.00, 16.00, 16.75, 18.50, 21.25, 20.25, 18.25, 15.50, 15.25, 16.00, 15.50, 16.00, 15.25, 15.50, 15.75, 14.75, 15.00, 15.50, 15.50, 15.75, 16.25, 15.50, 16.00, 15.25, 15.25, 15.25, 16.00, 15.75, 15.50, 15.25, 15.00, 14.75, 13.75, 14.50, 15.25, 15.00, 14.00, 14.25, 14.25, ] [16.50, 16.75, 17.75, 18.50, 18.75, 21.50, 23.75, 25.75, 15.50, 16.00, 16.75, 18.25, 19.50, 22.75, 23.25, 23.50, 15.25, 15.25, 16.25, 17.75, 19.50, 22.25, 22.75, 22.00, 14.75, 14.75, 15.25, 16.25, 18.50, 21.25, 19.75, 18.00, 15.25, 15.25, 15.25, 15.50, 15.75, 15.00, 15.75, 16.00, 15.25, 15.00, 15.75, 15.50, 15.50, 16.50, 14.75, 15.50, 15.00, 15.50, 15.50, 15.25, 15.75, 15.25, 15.50, 15.25, 14.75, 13.75, 15.50, 15.00, 15.00, 14.00, 14.75, 13.75, ] [15.75, 16.00, 17.75, 18.00, 19.50, 21.50, 23.50, 25.50, 16.00, 15.75, 17.00, 17.75, 19.25, 22.50, 23.50, 23.25, 15.25, 15.50, 16.50, 17.25, 19.25, 22.50, 22.25, 22.00, 14.75, 15.25, 15.75, 16.75, 18.75, 20.50, 19.75, 18.25, 15.25, 15.25, 15.25, 15.50, 15.75, 15.25, 15.00, 15.50, 15.25, 14.75, 15.25, 15.25, 15.25, 16.00, 15.50, 15.50, 15.00, 14.50, 15.00, 15.00, 15.75, 15.25, 15.50, 15.25, 14.50, 14.00, 15.25, 14.25, 15.00, 13.75, 14.25, 14.25, ] [16.75, 16.50, 17.50, 17.75, 19.00, 21.50, 23.75, 25.75, 16.00, 15.25, 16.50, 17.75, 19.75, 22.75, 23.25, 23.75, 15.25, 15.75, 16.50, 17.50, 19.25, 22.25, 22.50, 22.00, 15.00, 15.50, 15.50, 16.75, 18.50, 21.00, 20.00, 18.25, 15.00, 15.25, 15.25, 15.50, 15.50, 15.00, 15.75, 15.75, 15.25, 14.50, 15.75, 16.00, 15.50, 15.75, 15.50, 15.50, 15.25, 15.25, 15.00, 14.50, 15.75, 14.75, 15.50, 14.75, 14.00, 14.00, 15.00, 14.50, 15.00, 13.75, 13.75, 13.75, ]
回答1件
あなたの回答
tips
プレビュー