我跟进一个意图,让我们说一个“主意图”,让孩子遵循一个意图,而没有回应意图
如果是,我想从主意图中获取参数 我正在尝试使用如下上下文访问它:
var name = agent.context.get('saveContact.saveContact-yes').params['name'];Cannot read property 'get' of undefined
但是我不知道该放入什么 是上下文名称吗?或母版的意图名称或特定子代的意图名称? 我尝试了两者都得到Null
我无法读取未定义的属性“ get” 在日志中。
图书馆:
"firebase-functions": "^2.0.2",
"firebase-admin": "^5.13.1",
"googleapis": "^27.0.0",
"actions-on-google": "2.2.0",
"dialogflow-fulfillment": "^0.4.1"
其余代码:
function SaveContact(agent){
//var name = agent.parameters.name;
var name = agent.context.get('saveContact.saveContact-yes').params['name'];
var email = agent.context.get('saveContact.saveContact-yes').params['email'];
// var email=agent.parameters.email;
return admin.database().ref('/contacts').push({name: name,email:email}).then((snapshot) => {
// Redirect with 303 SEE OTHER to the URL of the pushed object in the Firebase console.
agent.add('added sucessfully');
// console.log('database write sucessful: ' + snapshot.val());
});
}
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response }); /// Thid is to handle the communication with dialogflow
let intentMap = new Map();
intentMap.set('makeAppointment', makeAppointment); // It maps the intent 'Make Appointment' to the function 'makeAppointment()'
intentMap.set('saveContact-yes', SaveContact);
agent.handleRequest(intentMap);
});
答案 0 :(得分:0)
确保您使用的是最新版本的dialogflow-fillfillment库。看来,从您的package.json
开始,您正在使用版本0.4.1,该版本具有使用上下文的另一种方式。
agent.context.get()
是在0.6.0版中引入的,但不推荐使用以前的方法。
您可以使用npm install --save dialogflow-fulfillment@latest