0

我正在尝试利用 AWS Lambda 作为对话流调用的 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 返回错误,如上所述。

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

请帮忙。

4

1 回答 1

0

您能否在这里发布一些代码以供更多参考?

如果您已经为对话框流安装了所需的 npm 库,那么据我所知,它应该可以工作。

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

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

另外,由于这是几个月前提出的问题,请让我知道您的问题是否已解决。

于 2019-09-22T09:56:55.610 回答