使用请求模块HTTP GET Firebase函数Node.js



我正在使用Firebase Cloud函数定价计划(!(作为谷歌操作的webhook。我正在尝试用请求模块实现HTTPGET。我已经安装了带有npm安装请求的模块,并正确部署。我想使用谷歌地图距离矩阵api。

由于某些原因,我根本无法使用请求模块。在日志中,我既没有看到"GET中的ERROR",也没有看到"being SUCCESSFULL"。你知道问题出在哪里吗?

// Handle the Dialogflow intent named 'Default Welcome Intent'.
app.intent('Default Welcome Intent', (conv) => {
var url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC&destinations=New+York+City,NY&key=AIzaSyBich-7OBAxvtAwX5XnHQyJ7xZiJ8libVQ";
request({url: url, json: true}, (err, resp, body) => {
if (err) {
console.log('ERROR in GET');
conv.ask('ERROR in GET');
}
else { 
conv.ask('beeing SUCCESSFULL');
console.log('beeing SUCCESSFULL');
}
})

提前感谢并致以最良好的问候。OliDev

这里,当您在处理程序函数内进行异步工作时,必须返回一个执行该工作的Promise,否则将出现空响应和错误。所以

app.intent('Default Welcome Intent', (conv) => {
return Promise(function(resolve,reject){
request({url: url, json: true}, (err, resp, body) => {
if (err) {
console.log('ERROR in GET');
conv.ask('ERROR in GET');
}else { 
conv.ask('beeing SUCCESSFULL');
console.log('beeing SUCCESSFULL');
}
resolve()
})   
})
})

希望这对你有用。

最新更新