javascript - Dialogflow webhook TypeError:无法读取属性“参数”
问题描述
我正在将 Dialogflow 与 Firebase 和 V2 API 一起使用,我的 webhook 上出现此错误:
TypeError: Cannot read property 'parameters' of undefined
at exports.dialogflowFirebaseFulFillment.functions.https.onRequest (/srv/index.js:15:38)
at cloudFunction (/srv/node_modules/firebase-functions/lib/providers/https.js:49:9)
at /worker/worker.js:783:7
at /worker/worker.js:766:11
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
我已经看过这篇文章,但我想不出他的台词和我的台词有什么区别。
这是代码:
const functions = require('firebase-functions');
process.env.DEBUG = 'dialogflow:debug';
const admin = require('firebase-admin');
admin.initializeApp();
exports.dialogflowFirebaseFulFillment = functions.https.onRequest((request, response) => {
console.log('Request headers: ' + JSON.stringify(request.headers));
console.log('Request body: ' + JSON.stringify(request.body));
const parameters = request.body.queryResult.parameters;
const db = admin.firestore();
const reservationRef = db.collection('reservations').doc('room-reservation');
reservationRef.add(parameters).then(() => {
response.send({
speech: 'Room reserved!'
});
}).catch((e => {
response.send({
speech: 'something went wrong'
})
}))
});
错误在其他地方吗?谢谢。
编辑: 实际上没有任何console.log 显示。
我的 webhook 是从云函数 url 触发的。我已经提供了:
浏览该网址时,它说:Error: could not handle the request
,但我认为这是正常的,因为我没有提供任何参数。那是对的吗?
配置 webhook 时是否必须提供身份验证?
编辑2:
日志中的错误与我提到的启动错误相同。
解决方案
推荐阅读
- css - 以百分比表示的 flex-basis 值如何工作?
- css - 在woocomerce上的“添加到购物车”按钮之前添加图像
- php - 使用 Laravel、Ajax 和 jQuery 的“点赞”系统
- system-verilog - 在可综合 SystemVerilog 的枚举 typedef 中使用 don't-care
- sql-server - 这个 SQL CASE WHEN 语句可以缩短吗?
- cocoa - 是否可以使用 .NET Core 创建一个简单的 MacOS Cocoa 应用程序?
- ruby - 有没有办法在 Ruby 中为整个 gem 重新加载所有必需的库/文件?
- ansible - 另一个变量ansible的变量值
- ef-core-2.0 - EF 核心中的多对多
- python - Networkx:图形标签混淆且未调整