Выполните запрос http, используя встроенный редактор в DialogFlow. - PullRequest
0 голосов
/ 29 января 2019

Ниже приведена функция, которую я вызываю, но каждый раз, когда я получаю ниже ошибка. Ошибка - MalformedResponse Не удалось проанализировать ответ Dialogflow в AppResponse из-за пустого речевого ответа.

$ ниже приведен полный код

function callExternalAPI () {
    return new Promise((resolve, reject) => {
       let path = 'path';
       console.log('API Request: ' + path);
       http.get({host: host, path: path}, (res) => {
       let body = ''; 
       res.on('data', (d) => { body += d; }); 
       res.on('end', () => {
         let response = JSON.parse(body);
         let output = 'response';
         console.log(output);
         resolve(output);
      });
      res.on('error', (error) => {
         console.log(`Error calling the weather API: ${error}`);
         reject();
      });
  });
  let intentMap = new Map();
  intentMap.set('CardView',callExternalAPI);
  agent.handleRequest(intentMap);
});

1 Ответ

0 голосов
/ 29 января 2019

Встроенный редактор использует Облачные функции для Firebase .По умолчанию ваш проект использует план Firebase «Spark», который ограничивает сетевые подключения только службами Google.

Поскольку подключение отклоняется, запускается блок if (err), и вы не указалиответ, который будет отправлен обратно пользователю, когда это произойдет, поэтому вы получаете сообщение об ошибке «пустой речевой ответ».

Самое простое решение - перейти на платный план , такой какплан "Blaze", который потребует от вас зарегистрировать кредитную карту, но у которого есть бесплатный уровень, так что вы не будете платить за базовый уровень операций, который обычно покрывает вашу разработку и тестирование, и может даже покрывать легкийпроизводственное использование.

Вероятно, вы также должны настроить ответ в случае ошибки.

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