我想在响应中打印出对Dialogflow请求时给出的参数但由于某种原因这对我不起作用。
这是请求:
request = {
session: sessionPath,
queryInput: {
event: {
name: 'questionevt',
parameters: {
question: 'this is a question'
},
languageCode: 'en-US',
},
},
};
任何想法为什么这不起作用,它显示出空洞,就像那里没有任何东西一样。
编辑:
奇怪的是,当我尝试打印console.log(result.parameters.fields.question);
时,我将{ stringValue: '', kind: 'stringValue' }
视为一个消息!
答案 0 :(得分:0)
您不能使用默认的文本响应来执行此操作,实际上,您需要在实现部分中针对该意图启用Webhook调用。我将向您展示我的意图。
我的实体:
实现部分中的代码(您需要启用内联编辑器):
'use strict';
const http = require('http');
const kind = 'ticket';
exports.dialogflowFirebaseFulfillment = (req, res) => {
console.log('Dialogflow Request body: ' + JSON.stringify(req.body));
let question = req.body.queryResult.parameters['question'];
switch(question){
case "computer":
res.send(JSON.stringify({ 'fulfillmentText': "Restart the computer."}));
break;
case "love":
res.send(JSON.stringify({ 'fulfillmentText': "Forget him/her."}));
break;
}
}
然后,如果您尝试了,它应该可以这样工作: