使用请求模块 HTTP GET Firebase 函数 Node.js
Use Request Module HTTP GET Firebase Function Node.js
我正在为 google 操作的 webhook 使用 Firebase 云函数定价计划 (!)。我正在尝试使用请求模块实现 HTTP GET。我已经使用 npm install request 安装了模块并正确部署了。我想使用 google 地图距离矩阵 api.
由于某些原因,我根本无法使用请求模块。在日志中我既没有看到 "ERROR in GET" 也没有看到 "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
在这里,当您在处理程序函数内执行异步工作时,您必须 return 一个执行该工作的 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()
})
})
})
希望这对你有用。
我正在为 google 操作的 webhook 使用 Firebase 云函数定价计划 (!)。我正在尝试使用请求模块实现 HTTP GET。我已经使用 npm install request 安装了模块并正确部署了。我想使用 google 地图距离矩阵 api.
由于某些原因,我根本无法使用请求模块。在日志中我既没有看到 "ERROR in GET" 也没有看到 "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
在这里,当您在处理程序函数内执行异步工作时,您必须 return 一个执行该工作的 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()
})
})
})
希望这对你有用。