当前位置: 首页 > 知识库问答 >
问题:

错误:getaddrinfo ENOTFOUND在节点中。dialogflow的js webhook

饶铭
2023-03-14

我正在努力学习dialogflow教程。我已经设置了一个节点。js webhook,从Dialogflow调用,在我调用api的webhook代码中。但是,我的节点。js webhook说“错误:getaddrinfo ENOTFOUND”。当我在可视化代码中运行它时,它工作得很好,但当通过DialogFlow调用时,在nodejs webhook中找不到api。从Dialogflow调用它的事实似乎让它无法工作。

我在这方面花了很多时间,之前发现DialogFlow不能与https一起使用,因为它是一个自签名证书,因此我放置了一个azure函数,所以webhook调用azure函数,然后azure函数调用我需要的api。抱歉发了这么长的帖子。。。

这是节点。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);

    });
  });
}

有人知道为什么会这样吗?或者我可以采取什么其他步骤来调查它?我已经查看了webhook和azure函数的日志。

任何帮助都将不胜感激,我已经为此浪费了很多天了。如果这是一个重复的问题,那么很抱歉,我已经尝试寻找这个问题的现有答案。

谢谢劳拉

共有1个答案

彭宜人
2023-03-14

我发现这个问题已经回答了:https://stackoverflow.com/a/46692487/7654050

这是因为我还没有为这个项目设置账单。我以为是在我的工作帐户上设置的。

 类似资料:
  • 我在express+Socket.io中使用了以下代码 我使用了以下代码: var express=require('express.io'); var app=require('express.io')(); var server=require('http').server(app); var io=require('socket.io')(server); 有没有人知道如何解决这个错误?

  • 我正在使用dialogflow节点SDK向dialogflow发送textRequests和eventRequests。fulfillment webhook显示,尽管sessionId相同,但上下文没有被保留。使用GoogleAssistant上的actions中的同一个dialogflow代理时,上下文将被保留。所以唯一的区别是我使用NodeSDK发送文本。 第二个请求不会触发INTENT_2

  • 我正在根据为postgres提供的对象列表生成一个动态更新查询。我的查询如下所示: 这是我给它的价值列表: 据我所知,这些值匹配正确。这是我看到的错误: 这是最终运行查询的代码: 这是表定义:

  • 我试图使用node连接mongodb。js。我偶然发现了一个问题。我正在得到要求(…)。pure不是函数错误。我试图使用这个网站上的确切代码“https://mongodb.github.io/node-mongodb-native/api-generated/collection.html“我的代码如下所示。 请让我知道你的建议。

  • 我一直试图在我的本地机器上构建一个nodejs项目,当我从终端构建它时,它会抛出一串文本,其中的最后一点是下面的错误消息: 如果你能提供一些见解,我将非常感激!

  • 问题内容: 使用node / express-我想从请求标头中获取一些JSON,但我想安全地做到这一点。 如果由于某种原因它不是有效的JSON,那很好,它可以返回false或其他任何值,它将拒绝请求并继续执行。问题是,如果它不是有效的JSON,则会引发语法错误。通常,我希望语法错误能够爆发,但在这种情况下不希望。 我是否会刮取堆栈并检查来自该特定模块的错误解析调用,如果是这种情况,它将忽略它?这似