我正在编写一个 Firebase 函数,用于实现对话流聊天机器人的 Webhook。它不断生成错误,response.send不是一个函数
const functions = require('firebase-functions');
var request1 = require('request')
exports.webhook = functions.https.onRequest((request, response) => {
console.log("request.body.result.parameters: ", request.body.result.parameters);
let params = request.body.result.parameters;
var options = {
url: `https://islam360api.herokuapp.com/${params.find}`,
json:true
}
request1(options, function(error, response, body){
if(error) response.send({speech: "error in API call"});
else response.send({speech: body.speech});
});
});
最佳答案
问题:这是影子变量名称的问题,当您尝试使用 firebase 函数响应对象发送响应时,实际上您正在将响应发送回 npm 请求模块的响应对象,这当然是不可能的
解决方案: 只需添加下划线或更改拼写,就可以开始了,看看代码: (注意从底部算起第五行的变化)
const functions = require('firebase-functions');
var request1 = require('request')
exports.webhook = functions.https.onRequest((request, response) => {
console.log("request.body.result.parameters: ", request.body.result.parameters);
let params = request.body.result.parameters;
var options = {
url: `https://islam360api.herokuapp.com/${params.find}`,
json:true
}
request1(options, function(error, _response, body){
if(error) response.send({speech: "error in API call"});
else response.send({speech: body.speech});
});
});
关于node.js - response.send 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55304515/