Dialogflow es 无法调用外部api';来自谷歌dialogflow网络钩子?
我尝试从GoogleDialogue流的内联编辑器调用外部api。但不起作用。我正在使用内联编辑器。我在日志中看到的错误是“错误:找不到模块”request promise native“。是否还有其他地方需要添加此参考?package.JSON?如果是,怎么做Dialogflow es 无法调用外部api';来自谷歌dialogflow网络钩子?,dialogflow-es,actions-on-google,Dialogflow Es,Actions On Google,我尝试从GoogleDialogue流的内联编辑器调用外部api。但不起作用。我正在使用内联编辑器。我在日志中看到的错误是“错误:找不到模块”request promise native“。是否还有其他地方需要添加此参考?package.JSON?如果是,怎么做 function AccountNumberHandler(agent) { const AccountNumber = agent.parameters.AccountNumber; if (AccountNumbe
function AccountNumberHandler(agent) {
const AccountNumber = agent.parameters.AccountNumber;
if (AccountNumber) {
//console.log(AccountNumber);
const request = require('request-promise-native');
agent.add('Unable to get result');
const url = "xxxx";
const data = "";
return request.post(url, data)
.then(jsonBody => {
var body = JSON.parse(jsonBody);
agent.add(body);
return Promise.resolve(agent);
})
.catch(err => {
console.error('Problem making network call', err);
agent.add('Unable to get result');
return Promise.resolve(agent);
});
//agent.add(`Wow! I didn't know you knew ${AccountNumber}`);
}
是的,您需要将其添加到package.json文件中 要使用Dialogflow内联编辑器执行此操作,您将在编辑器顶部看到两个文件名:index.js和package.json。只需单击“package.json”并对其进行编辑,即可将所需内容添加到“dependencies”部分
上面@Captile的回答是正确的,但是,在使用内联编辑器调用外部API时,您可能仍然会看到一些问题。这是因为内联编辑器使用firebase在其免费计划中阻止对外部API的调用 因此,您需要升级到blaze计划,该计划允许调用外部API。但是,您需要输入您的卡的详细信息,所以请记住这一点 我创建了一个视频教程,介绍如何将dialogflow代理连接到外部API。请看一下这个视频。
希望这有帮助。欢迎!请回答您的问题,并尝试更清楚地描述您的问题。什么不起作用?你收到错误消息了吗?正如@ventiseis所说,你提供的信息越多,我们帮助你的机会就越大。请更新您的问题。您在什么平台上运行您的实现—您自己的环境还是内置的代码编辑器?你有什么错误?发生了什么或没有发生什么?请看,我正在使用内联编辑器。我在日志中看到的错误是“错误:找不到模块”request promise native“。是否还有其他地方需要添加此参考?package.JSON?如果是,怎么办?非常感谢。我能够进行API调用,但日志显示以下错误。进行网络调用时出现问题{StatusCodeError:500-“{\”消息\:\”发生错误。\“}”我可以从POSTMAN调用相同的API,没有任何问题。听起来您的代码本身有问题,或者您正在访问的API的发送内容有问题。我建议打开一个新问题,再次显示代码,以及任何错误或其他可用调试。谢谢。非常感谢。我能够进行API调用,但日志显示以下错误。进行网络调用时出现问题{StatusCodeError:500-“{\”Message\“:\”发生错误。\“}”我能够从POSTMAN调用相同的API,没有任何问题。您似乎没有在post请求正文中传递正确的数据。请确保您的数据是有效的JSON对象。