OSDN Git Service

signature
authoryamat0jp <yamat0jp@yahoo.co.jp>
Fri, 7 Sep 2018 21:24:01 +0000 (06:24 +0900)
committeryamat0jp <yamat0jp@yahoo.co.jp>
Fri, 7 Sep 2018 21:24:01 +0000 (06:24 +0900)
bot.py

diff --git a/bot.py b/bot.py
index be221c4..bc15410 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -14,6 +14,7 @@ from datetime import datetime
 from linebot import LineBotApi, WebhookParser
 from linebot.exceptions import InvalidSignatureError
 from linebot.models import TextSendMessage
+from linebot.webhook import WebhookHandler
 
 
 class WebHookHandler(tornado.web.RequestHandler):   
@@ -55,8 +56,15 @@ class WebHookHandler(tornado.web.RequestHandler):
         return ans
             
     def post(self):
-        j = tornado.escape.json_decode(self.request.body)
-        for event in j['events']:
+        signature = self.request.headers['X-Line-Signature']
+        body = self.request.body
+        handler = WebhookHandler(ch)
+        try:
+            handler.handle(body, signature)
+        except InvalidSignatureError:
+            tornado.web.HTTPError(404)
+        dict = tornado.escape.json_decode(self.request.body)
+        for event in dict['events']:
             if 'replyToken' in event:
                 linebot.reply_message(
                     event['replyToken'],