如何在dialogflow中使用嵌入式编辑器触发POST请求?

时间:2019-05-03 07:23:24

标签: dialogflow actions-on-google dialogflow-fulfillment fulfillment

代码:

var rp = require('request-promise');
var options = {
                method: 'POST',
                uri: 'http://c663fe13.ngrok.io/ap/lighton',
                body: {"color": 'white'},
                json: true // Automatically stringifies the body to JSON
            };

            rp(options)
                .then(function (parsedBody) {
                    // POST succeeded...+
                    console.log("parsedBody", parsedBody);
                })
                .catch(function (err) {
                    // POST failed...
                    console.log("err", err);
                });

但这给了我以下错误:

  

{RequestError:错误:getaddrinfo EAI_AGAIN c663fe13.ngrok.io:80       在新的RequestError(/srv/node_modules/request-promise-core/lib/errors.js:14:15)       在Request.plumbing.callback(/srv/node_modules/request-promise-core/lib/plumbing.js:87:29)       在Request.RP $ callback [作为_callback](/srv/node_modules/request-promise-core/lib/plumbing.js:46:31)

     

。 。

     

名称:“ RequestError”,消息:“错误:getaddrinfo EAI_AGAIN   c663fe13.ngrok.io:80',
   原因:{错误:getaddrinfo EAI_AGAIN   c663fe13.ngrok.io:80       在GetAddrInfoReqWrap.onlookup上(作为完成时)(dns.js:67:26)        errno:“ EAI_AGAIN”,        代码:“ EAI_AGAIN”,        syscall:“ getaddrinfo”,        主机名:“ c663fe13.ngrok.io”,        主持人:“ c663fe13.ngrok.io”,        端口:80},

我试图用邮递员调用该API,并且运行良好。

1 个答案:

答案 0 :(得分:1)

如果您使用的是免费帐户,则将无法从Firebase云功能访问任何第三方服务。如果您要使用免费帐户,最好写下自己的Webhook代码,并使用实现功能将该Webhook与Dialogflow代理集成,这样会更好。

更新 查看我共享的here代码段。您可以使用它来集成ExpressJS,然后添加您的POST代码并将其托管在本地。使用ngrok公开本地服务器,然后将该URL设置为完整。