代码:
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,并且运行良好。
答案 0 :(得分:1)
如果您使用的是免费帐户,则将无法从Firebase云功能访问任何第三方服务。如果您要使用免费帐户,最好写下自己的Webhook代码,并使用实现功能将该Webhook与Dialogflow代理集成,这样会更好。
更新 查看我共享的here代码段。您可以使用它来集成ExpressJS,然后添加您的POST代码并将其托管在本地。使用ngrok公开本地服务器,然后将该URL设置为完整。