djangoを用いてLINE@ボットをheroku上で動かしています。期待する動作はなにかテキストでメッセージを送ったら同じメッセージを返すというものです。しかしそれがちゃんと動作しません。以下確認した症状などです。
1.オウム返しをそもそもしない
2.ログを見る限りテキスト自体はheroku上のbotに届いており処理はしている
3.webhookの接続確認の際Webhookが無効なHTTPステータスコードを返しました(期待されるステータスコードは200です)が帰ってくる。ログを確認したところ500番を返している模様。
以下ソースとログです。
Python
1//Djnago views.py 2 3from django.shortcuts import render 4from django.http.response import HttpResponse 5import os 6import json 7import random 8import requests 9from django.http import JsonResponse 10from django.views.generic import View 11import urllib 12REPLY_ENDPOINT = 'https://api.line.me/v2/bot/message/reply' 13 14header = { 15 "Content-Type": "application/json", 16 "Authorization": (大変恐縮ですが伏せさせていただきます) 17 } 18 19def dispose(events): 20 global header 21 print('This is dispose request') 22 for event in events: 23 reply_token = event['replyToken'] 24 event_type = event['type'] 25 user_id = event['source']['userId'] 26 response_to_talk(reply_token, event) 27 28def response_to_talk(reply_token, event): 29 global header 30 print("enter response to talk") 31 payload = { 32 "replyToken":reply_token, 33 "messages": 34 { 35 "type":"text", 36 "text": event['message']['text'] 37 } 38 39 } 40 print(payload) 41 req = requests.post(REPLY_ENDPOINT, headers=header, data=json.dumps(payload)) 42 43 44 45class ViewSet(View): 46 global header 47 http_method_names = ['get', 'post'] 48 49 def get(self, *args, **kwargs): 50 return JsonResponse({'Successfully': 'Connected!'}) 51 52 def post(self, request, *args, **kwargs): 53 dispose(json.loads(request.body.decode("utf-8"))['events']) 54 return JsonResponse({'': ''})
//heroku log --tailでとれたもの 2018-06-13T04:53:10.741071+00:00 app[web.1]: 10.41.206.209 - - [13/Jun/2018:04:53:10 +0000] "POST /callback HTTP/1.1" 200 8 "-" "LineBotWebhook/1.0" 2018-06-13T04:53:10.391842+00:00 app[web.1]: This is dispose request 2018-06-13T04:53:10.391864+00:00 app[web.1]: enter response to talk 2018-06-13T04:53:10.391873+00:00 app[web.1]: {'replyToken': 'e47767136fcd4afa82b3d52a736eb3b5', 'messages': {'type': 'text', 'text': 'ほほj'}} 2018-06-13T04:53:13.881517+00:00 app[web.1]: This is dispose request 2018-06-13T04:53:13.881529+00:00 app[web.1]: enter response to talk 2018-06-13T04:53:13.881544+00:00 app[web.1]: {'replyToken': '82bf4aa40cf145798da1aa66f20817cb', 'messages': {'type': 'text', 'text': 'cうckgkjpxycお'}} 2018-06-13T04:53:14.120924+00:00 app[web.1]: 10.41.206.209 - - [13/Jun/2018:04:53:14 +0000] "POST /callback HTTP/1.1" 200 8 "-" "LineBotWebhook/1.0" 2018-06-13T04:53:14.121747+00:00 heroku[router]: at=info method=POST path="/callback" host=metabots.herokuapp.com request_id=2526f5f1-8db7-46e6-99f2-ce938303078e fwd="203.104.146.152" dyno=web.1 connect=1ms service=241ms status=200 bytes=188 protocol=https 2018-06-13T04:54:17.320200+00:00 app[web.1]: This is dispose request 2018-06-13T04:54:17.320220+00:00 app[web.1]: enter response to talk 2018-06-13T04:54:17.320224+00:00 app[web.1]: {'replyToken': '00000000000000000000000000000000', 'messages': {'type': 'text', 'text': 'Hello, world'}} 2018-06-13T04:54:17.546120+00:00 app[web.1]: enter response to talk 2018-06-13T04:54:17.597216+00:00 heroku[router]: at=info method=POST path="/callback" host=metabots.herokuapp.com request_id=6665a3a6-e24b-4d46-b6b6-7b7ef76606b8 fwd="203.104.156.73" dyno=web.1 connect=1ms service=277ms status=500 bytes=234 protocol=https 2018-06-13T04:54:17.595865+00:00 app[web.1]: 10.136.186.78 - - [13/Jun/2018:04:54:17 +0000] "POST /callback HTTP/1.1" 500 27 "-" "LINE-Developers/0.1" 2018-06-13T05:00:02.322179+00:00 heroku[router]: at=info method=POST path="/callback" host=metabots.herokuapp.com request_id=099bf773-08e5-45f4-9c5b-ea4803fb2528 fwd="203.104.156.74" dyno=web.1 connect=0ms service=307ms status=500 bytes=234 protocol=https
足りない情報などあれば大変恐縮ですが、ご指摘いただければ幸いです。以上よろしくお願いいたします。
追記
症状の一つにrequests.post実行後の返り値が<Response 400>でした
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。