前提・実現したいこと
LineBotのチュートリアルとして用いられる「おうむ返しBot」をタイトルものを用いて、作成しました。
次の段階でMessageAPIを用いてPUSH_MESSAGEを送ろうとしていますが、useridの獲得方法がわからず困っております。
より具体的には、RequestのBodyの中に入っているみたいなのはわかるのですが、これを確認する方法がわかりません。
print
で、$heroku logs -tail
で、なんとか出力できることは確認しましたが、app.logger.info
で書き込んでるため、heroku環境でそこを確認したく思っております。
よろしくお願いいたします。
該当のソースコード
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["YOUR_CHANNEL_ACCESS_TOKEN"] 18YOUR_CHANNEL_SECRET = os.environ["YOUR_CHANNEL_SECRET"] 19 20line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN) 21handler = WebhookHandler(YOUR_CHANNEL_SECRET) 22 23@app.route("/") 24def hello_world(): 25 return "hello world!" 26 27@app.route("/callback", methods=['POST']) 28def callback(): 29 # get X-Line-Signature header value 30 signature = request.headers['X-Line-Signature'] 31 32 # get request body as text 33 body = request.get_data(as_text=True) 34 app.logger.info("Request body: " + body) #ここでloggerに保存しているが、Herokuで運用中にloggerの参照方法がわからない!!! 35 36 # handle webhook body 37 try: 38 handler.handle(body, signature) 39 except InvalidSignatureError: 40 abort(400) 41 42 return 'OK' 43 44 45@handler.add(MessageEvent, message=TextMessage) 46def handle_message(event): 47 line_bot_api.reply_message( 48 event.reply_token, 49 TextSendMessage(text=event.message.text)) 50 51 52if __name__ == "__main__": 53 port = int(os.getenv("PORT", 5000)) 54 app.run(host="0.0.0.0", port=port) 55
補足情報(FW/ツールのバージョンなど)
python == 3.6.3
flask == 0.12.2
line-bot-sdk == 1.5.0
- herokuを用いている
Profile
1web: python main.py
webhookURLの接続確認にはエラーが出ている
error
12018-11-20T10:22:54.797625+00:00 app[web.1]: [2018-11-20 10:22:54,796] ERROR in app: Exception on /callback [POST] 22018-11-20T10:22:54.797639+00:00 app[web.1]: Traceback (most recent call last): 32018-11-20T10:22:54.797644+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app 42018-11-20T10:22:54.797647+00:00 app[web.1]: response = self.full_dispatch_request() 52018-11-20T10:22:54.797648+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request 62018-11-20T10:22:54.797650+00:00 app[web.1]: rv = self.handle_user_exception(e) 72018-11-20T10:22:54.797652+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception 82018-11-20T10:22:54.797654+00:00 app[web.1]: reraise(exc_type, exc_value, tb) 92018-11-20T10:22:54.797656+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise 102018-11-20T10:22:54.797658+00:00 app[web.1]: raise value 112018-11-20T10:22:54.797659+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request 122018-11-20T10:22:54.797661+00:00 app[web.1]: rv = self.dispatch_request() 132018-11-20T10:22:54.797663+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request 142018-11-20T10:22:54.797665+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args) 152018-11-20T10:22:54.797666+00:00 app[web.1]: File "main.py", line 40, in callback 162018-11-20T10:22:54.797668+00:00 app[web.1]: handler.handle(body, signature) 172018-11-20T10:22:54.797670+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/linebot/webhook.py", line 227, in handle 182018-11-20T10:22:54.797671+00:00 app[web.1]: func(event) 192018-11-20T10:22:54.797673+00:00 app[web.1]: File "main.py", line 51, in handle_message 202018-11-20T10:22:54.797675+00:00 app[web.1]: TextSendMessage(text=event.message.text)) 212018-11-20T10:22:54.797676+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/linebot/api.py", line 94, in reply_message 222018-11-20T10:22:54.797678+00:00 app[web.1]: '/v2/bot/message/reply', data=json.dumps(data), timeout=timeout 232018-11-20T10:22:54.797680+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/linebot/api.py", line 372, in _post 242018-11-20T10:22:54.797681+00:00 app[web.1]: self.__check_error(response) 252018-11-20T10:22:54.797683+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/linebot/api.py", line 381, in __check_error 262018-11-20T10:22:54.797684+00:00 app[web.1]: raise LineBotApiError(response.status_code, error) 272018-11-20T10:22:54.797693+00:00 app[web.1]: linebot.exceptions.LineBotApiError: <LineBotApiError [Invalid reply token]> 28
回答1件
あなたの回答
tips
プレビュー