2017-10-11 133 views
0

我目前正在做一些與Amazon Lex,Lambda和Facebook Messenger Webhook集成chatbots的概念證明。亞馬遜Lex Facebook的信使Webhook和頁面作用域ID

我通過Facebook的Webhook看到,當郵件發送給Lex時,它們包含一個用戶ID(我相信它是頁面作用域ID)。

通過LAMBDA初始化和驗證與亞馬遜萊克斯,我沒有看到這個頁面作用域確定爲ID在LAMBDA內的事件對象,這使我相信萊克斯如果格式化事件並剔除任何主體內容在任​​何地方通過這是從Facebook傳來的。

有沒有辦法讀取傳入請求的主體內容?

回答

0

當通過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']