Невозможно проверить X-Line-Signature для LINE Bot (Python) - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь внедрить бота LINE с AWS API Gateway и AWS Lambda в качестве webhook.Я могу успешно подключиться к веб-крюку.Сейчас я пытаюсь проверить подпись X-Line, исходящую из заголовков запроса LINE, но я не могу этого сделать.

Вот мой код:

def lambda_handler(event, context):

    channel_secret = 'XXXXXXXXXXXX'

    headers = event['headers']
    header_signature = headers['X-Line-Signature']

    body = json.dumps(event['body'])

    hash = hmac.new(
        channel_secret.encode('utf-8'),
        body.encode('utf-8'),
        hashlib.sha256
        ).digest()

    signature = base64.b64encode(hash)

    print (header_signature, signature)

Не получается получить подходящую подпись.

Я также пытался использовать пакет line-bot-python-sdk, нобезрезультатно (взято по этой ссылке: [https://github.com/line/line-bot-sdk-python][1]):

def lambda_handler(event, context):

    from linebot import WebhookHandler
    from linebot.exceptions import InvalidSignatureError
    handler = WebhookHandler('XXXXXXXXXXXXXXXXXX')

    headers = event['headers']
    header_signature = headers['X-Line-Signature']

    body = json.dumps(event['body'])

    try:
        handler.handle(body, header_signature)
        print('Succeeded')
    except InvalidSignatureError:
        print('Signature Failed')

Любая помощь или совет будут оценены!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...