使用AWS Lambda Webhook的Dialogflow

时间:2018-12-09 09:21:50

标签: amazon-web-services aws-lambda webhooks dialogflow dialogflow-fulfillment

我正在尝试将AWS Lambda用作dialogflow调用的Webhook。 我想使用所有代理/谷歌动作库。

因此,我复制了示例代码并将其粘贴到Lambda中,这在Dialogflow控制台中可以得到。我安装了所有的npm库。但是在测试时,我遇到了这个问题:

TypeError: Cannot read property 'result' of undefined
    at new WebhookClient (/var/task/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:84:27)
    at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/var/task/index.js:13:17)
    at cloudFunction (/var/task/node_modules/firebase-functions/lib/providers/https.js:57:9)

我之前已经公开了Lambda,但是由于Dialogflow的要求,所以我不能这样做。

注意:我正在Google Cloud和AWS Lambda中传递相同的请求有效负载,如上所述,Google Cloud返回正确,但是Lambda返回错误。

不确定我是否错过了任何步骤,或者我的理解是错误的。

请帮助。

1 个答案:

答案 0 :(得分:0)

您还可以在此处发布一些代码以获取更多参考吗?

如果您已经为dialog-flow安装了必需的npm库,那么据我所知它应该可以工作。

还请注意,如果您尝试访问DialogFlow的输入请求参数,例如{"userId": string,"idToken " string},则默认情况下在lambda事件中将无法访问它,因此您可能会遇到类似Cannot read property 'result.originalRequest.user.idToken' of undefined的错误。

您必须首先在实现意图上启用google集成,以便google可以要求用户在请求正文中发送这些属性的权限。

此外,由于这个问题是在几个月前被问到的,因此请告诉我您的问题是否已解决。