webhook.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:python-line-api 作者: shlee322 项目源码 文件源码
def get_wsgi_application(self):
        def create_response(environ, start_response, status=200):
            from webob import Response
            res = Response(
                content_type='application/json',
                body='{}',
                status=status
            )
            return res(environ, start_response)

        def application(environ, start_response):
            import json
            from webob import Request
            request = Request(environ)

            # Check HMAC-SHA256
            if not self.is_valid_sign(request.body, request.headers.get('X-Line-Signature')):
                return create_response(environ, start_response, 403)

            # Check Handler
            if not self.handler:
                return create_response(environ, start_response, 501)

            # Parse Event
            try:
                obj = json.loads(request.body.decode('utf-8'))
                from .parse import event_parser
                events = [event_parser(event_json, self.channel) for event_json in obj['events']]
            except:
                return create_response(environ, start_response, 400)

            # Call Event Handler
            for event in events:
                self.handler(event)

            return create_response(environ, start_response)

        return application
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号