Dialogflow es 无法调用外部api';来自谷歌dialogflow网络钩子?

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

我尝试从GoogleDialogue流的内联编辑器调用外部api。但不起作用。我正在使用内联编辑器。我在日志中看到的错误是“错误:找不到模块”request promise native“。是否还有其他地方需要添加此参考?package.JSON?如果是,怎么做

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对象。