首页 > 解决方案 > 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:

这是日志(找不到,我的错误): 在此处输入图像描述

日志中的错误与我提到的启动错误相同。

标签: javascriptnode.jsdialogflow-esdialogflow-es-fulfillment

解决方案


推荐阅读