【问题标题】:Amazon Lex Facebook Messenger Webhook and getting Page Scoped IDAmazon Lex Facebook Messenger Webhook 和获取 Page Scoped ID
【发布时间】:2017-10-11 22:49:14
【问题描述】:

我目前正在使用 Amazon Lex、Lambda 和用于聊天机器人的 Facebook Messenger Webhook 集成做一些概念验证工作。

我通过 Facebook 的 Webhook 看到,当消息发送到 Lex 时,它们包含一个用户 ID(我相信它是 Page Scoped ID)。

通过使用 Amazon Lex 进行 Lambda 初始化和验证,我没有看到在 Lambda 内部的 event 对象中的任何地方传递了这个页面范围的 ID,这让我相信 Lex 如果格式化事件并剥离删除从 Facebook 传递的任何正文内容。

有没有办法读取传入请求的正文内容?

【问题讨论】:

    标签: aws-lambda facebook-messenger amazon-lex


    【解决方案1】:

    通过 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']

    【讨论】:

      猜你喜欢
      • 2021-12-19
      • 2018-03-08
      • 2016-11-15
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 2014-08-20
      • 2016-10-12
      • 2017-01-28
      相关资源
      最近更新 更多