Ошибка: getaddrinfo ENOTFOUND в узле web.hos для диалога - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь следовать руководству по диалогу.Я создал webhook node.js, который вызывается из Dialogflow, внутри кода webhook, который я вызываю для API.Тем не менее, мой node.js webhook говорит "Ошибка: getaddrinfo ENOTFOUND".Это прекрасно работает, когда я запускаю его в визуальном коде, но не могу найти API в webhook nodejs, когда вызывается через DialogFlow.Есть что-то в том факте, что он вызывается из Dialogflow, что, кажется, заставляет его не работать.

Я потратил много времени на это и заранее обнаружил, что DialogFlow не будет работать с https, где это самозаверяющий сертификат, поэтому я поставил функцию Azure, поэтому webhook вызывает функцию Azure итогда функция azure вызывает API, который мне нужен.Извините за длинный пост ...

Вот код node.js:

'use strict';
const http = require('http');
var request = require('request');

const apiUrl ="https://myapi";
exports.saledurationWebhook = (req, res) => {
  // Get the city and date from the request
 // let city = req.body.queryResult.parameters['geo-city']; // city is a required param
let city = "sdjk"; 
  // Call the weather API
  callSalesDurationApi(city).then((output) => {
    res.json({ 'fulfillmentText': output }); // Return the results of the weather API to Dialogflow
  })
  .catch((err) => {
    console.log(err);

    //res.json({ 'fulfillmentText': `I don't know the sales duration is but I hope it's quick!` });
    res.json({ 'fulfillmentText': err.message});

  })
  ;
};

function callSalesDurationApi(city) {
  return new Promise((resolve, reject) => {

    console.log('API Request: ' + apiUrl);

    var myJSONObject = {
      "Inputs": "stuff"
    };

    request({
      url: apiUrl,
      method: "POST",
      json: true,   // <--Very important!!!
      body: myJSONObject
    }, function (error, response, body) {

      console.log("successfully called api");
      let output = "Current conditions in the " + body;

      console.log(output);
      console.log(body);
      resolve(output);

    });
  });
}

Кто-нибудь знает, почему это может происходить?Или какие дальнейшие шаги я могу предпринять, чтобы исследовать это?Я уже посмотрел ложи для веб-крючка и для лазурной функции.

Любая помощь будет с благодарностью получена, я уже потратил впустую дни на это.Если это дублирующий вопрос, извините, я попытался найти существующие ответы на этот вопрос.

Спасибо, Лора

1 Ответ

0 голосов
/ 27 мая 2018

Я нашел этот вопрос уже ответил на: https://stackoverflow.com/a/46692487/7654050

Это потому, что я не установил выставление счетов для этого проекта.Я думал, что это было настроено как это на моем рабочем счете.

...