我正在努力学习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函数的日志。
任何帮助都将不胜感激,我已经为此浪费了很多天了。如果这是一个重复的问题,那么很抱歉,我已经尝试寻找这个问题的现有答案。
谢谢劳拉
我发现这个问题已经回答了: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
我试图使用node连接mongodb。js。我偶然发现了一个问题。我正在得到要求(…)。pure不是函数错误。我试图使用这个网站上的确切代码“https://mongodb.github.io/node-mongodb-native/api-generated/collection.html“我的代码如下所示。 请让我知道你的建议。
我正在根据为postgres提供的对象列表生成一个动态更新查询。我的查询如下所示: 这是我给它的价值列表: 据我所知,这些值匹配正确。这是我看到的错误: 这是最终运行查询的代码: 这是表定义:
我一直试图在我的本地机器上构建一个nodejs项目,当我从终端构建它时,它会抛出一串文本,其中的最后一点是下面的错误消息: 如果你能提供一些见解,我将非常感激!
问题内容: 使用node / express-我想从请求标头中获取一些JSON,但我想安全地做到这一点。 如果由于某种原因它不是有效的JSON,那很好,它可以返回false或其他任何值,它将拒绝请求并继续执行。问题是,如果它不是有效的JSON,则会引发语法错误。通常,我希望语法错误能够爆发,但在这种情况下不希望。 我是否会刮取堆栈并检查来自该特定模块的错误解析调用,如果是这种情况,它将忽略它?这似