亚马逊Lex Facebook的信使Webhook和页面作用域ID
问题描述:
我目前正在做一些与Amazon Lex,Lambda和Facebook Messenger Webhook集成chatbots的概念证明。亚马逊Lex Facebook的信使Webhook和页面作用域ID
我通过Facebook的Webhook看到,当邮件发送给Lex时,它们包含一个用户ID(我相信它是页面作用域ID)。
通过LAMBDA初始化和验证与亚马逊莱克斯,我没有看到这个页面作用域确定为ID在LAMBDA内的事件对象,这使我相信莱克斯如果格式化事件并剔除任何主体内容在任何地方通过这是从Facebook传来的。
有没有办法读取传入请求的主体内容?
答
当通过Facebook访问Lex时,Lex会将Facebook数据传递给event.requestAttributes
内的Lambda函数。这是如下结构:
"requestAttributes": {
"x-amz-lex:facebook-page-id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"x-amz-lex:channel-id": "XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"x-amz-lex:webhook-endpoint-url": "https://channels.lex.us-east-1.amazonaws.com/facebook/webhook/XXX-XXXX-XXXXXXXXX",
"x-amz-lex:accept-content-types": "PlainText",
"x-amz-lex:user-id": "XXXXXXXXXXXXXXX",
"x-amz-lex:channel-name": "FacebookLexBotAppName",
"x-amz-lex:channel-type": "Facebook"
},
为了得到页访问令牌 = event.requestAttributes['x-amz-lex:facebook-page-id']
为了得到PSID(页作用域ID) = event.requestAttributes['x-amz-lex:user-id']