Я пытаюсь внедрить бота 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')
Любая помощь или совет будут оценены!