Получение параметров в последующем намерении из предыдущего намерения - PullRequest
1 голос
/ 06 апреля 2019

Я отслеживаю намерение для намерения, скажем, «мастер-намерение», чтобы дочернее намерение следовало как «да» и «нет» намерение ответа

Если да, я хочу получить параметры из основного намерения Я пытаюсь получить к нему доступ, используя такой контекст:

var name = agent.context.get('saveContact.saveContact-yes').params['name'];Cannot read property 'get' of undefined

но я не знаю, что положить в get Это имя контекста? или имя намерения для мастера или имя конкретного дочернего намерения? Я попробовал оба и получил 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);

});

1 Ответ

0 голосов
/ 09 апреля 2019

Убедитесь, что вы используете последнюю версию библиотеки dialogflow-executement. Похоже, из вашего package.json вы используете версию 0.4.1, которая по-другому работала с контекстами.

agent.context.get() был представлен в версии 0.6.0, при этом предыдущий метод устарел.

Вы можете обновить до последней версии, используя npm install --save dialogflow-fulfillment@latest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...