Свойство диалогового потока Webhookclient "request_" - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь создать чат-мессенджер в Facebook, используя Dialogflow. В встроенном редакторе выполнения диалогового потока я обнаружил, что могу использовать agent.request_.body для получения тела запроса. Я предполагаю, что "request_" является свойством объекта WebhoodClient? Но я не смог найти какую-либо документацию, которая могла бы прояснить это, не могли бы вы сообщить, правильное ли мое понимание и где я могу найти ссылку или документацию?

const agent = new WebhookClient({ request, response });
console.log(JSON.stringify(agent.request_.body));

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Просто заметка. У меня был код, подобный этому:

const city = agent.parameters['geo-city'];

Есть значок, который указывает на то, что он лучше написан точечной нотацией. что прошло после того, как я изменил его на:

const city = agent.parameters.geo-city;
0 голосов
/ 06 ноября 2018

Google предоставляет документацию для веб-крючков Dialogflow здесь , которые включают этот пример веб-крючка для проверки параметров и динамического создания подсказок заполнения слотов:

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {

  const agent = new WebhookClient({ request, response });

  function flight(agent) {
    const city = agent.parameters['geo-city'];
    const time = agent.parameters['time'];
    const gotCity = city.length > 0;
    const gotTime = time.length > 0;

    if(gotCity && gotTime) {
        agent.add(`Nice, you want to fly to ${city} at ${time}.`);
    } else if (gotCity && !gotTime) {
        agent.add('Let me know which time you want to fly');
    } else if (gotTime && !gotCity) {
        agent.add('Let me know which city you want to fly to');
    } else {
        agent.add('Let me know which city and time you want to fly');
    }
  }

  let intentMap = new Map();
  intentMap.set('flight', flight);
  agent.handleRequest(intentMap);
});

Я думаю, будет добавлено

console.log(agent);

прямо перед определением функции полета, затем проверяя журналы, чтобы увидеть, какие объекты содержит агент, затем добавляя итерации console.log (agent.fakeObjectName), пока не найдете нужную информацию.

Если вы следуете процессу развертывания, рекомендованному в Действиях на Codelabs Google уровня 2 , ваши журналы будут отображаться в консоли Firebase, например:

Firebase console - Functions - Logs

Надеюсь, это поможет!

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