我正在尝试将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返回错误。
不确定我是否错过了任何步骤,或者我的理解是错误的。
请帮助。
答案 0 :(得分:0)
您还可以在此处发布一些代码以获取更多参考吗?
如果您已经为dialog-flow安装了必需的npm库,那么据我所知它应该可以工作。
还请注意,如果您尝试访问DialogFlow的输入请求参数,例如{"userId": string,"idToken " string}
,则默认情况下在lambda事件中将无法访问它,因此您可能会遇到类似Cannot read property 'result.originalRequest.user.idToken' of undefined
的错误。
您必须首先在实现意图上启用google集成,以便google可以要求用户在请求正文中发送这些属性的权限。
此外,由于这个问题是在几个月前被问到的,因此请告诉我您的问题是否已解决。