gpt4 book ai didi

javascript - 通过api.ai的函数回调获取json body

转载 作者:行者123 更新时间:2023-11-30 15:06:17 24 4
gpt4 key购买 nike

我使用 firebase 来托管云函数,因为许多函数(几乎每个函数)都需要发出 http 请求并获取 json 主体以从中获取数据。但是,回调对我来说效果不佳,我已经搜索了一些现有的答案,但仍然停留在这个问题上。这是代码片段,之前声明了选项,如果我不将请求放在 get_request_handler 中,它工作正常。:

function get_request_handler(assistant, input_url, callback) {
req(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
var cookie = req.cookie('BPMSTS=' + body );
var headers = {
'Content-Type': 'application/json',
'Cookie': cookie
};
var option = {
url: input_url,
method: 'GET',
headers: headers
}
req(option, function(error, res, body) {
assistant.ask(input_url);
if (!error && res.statusCode == 200) {
callback(JSON.parse(body));
} else {
assistant.ask('inner request with error code: ' + (res.statusCode).toString());
}
});
} else {
assistant.ask('outer request with error code: ' + (response.statusCode).toString());
}
});
}

我调用函数如下:

get_request_handler(assistant, workflow_url, function(cur_json){assistant.ask(cur_json);});

现在的问题是 get_request_handler 函数中无法发出第一个请求。换句话说,它只进入 get_request_handler 但不进入那个请求体。如果我不创建 get_request_handler 并留下 req(options, function (error, response, body) { ... } 它可以毫无问题地工作。对此有什么想法吗?

注意:我刚刚检查了 firebase 日志,它针对这一行说:req(options, function (error, response, body) it got TypeError: Assignment to constant variable. 在 get_request_handler (/user_code/index.js:116:13)

最佳答案

这里有很多问题,但最基本的问题是您试图在对用户的响应中多次调用 assistant.ask()。一旦您调用 assistant.ask(),就不能发送进一步的响应,并且不会处理对 ask() 的任何其他调用。

看起来您正在使用它进行调试。当您应该使用 console.log() 时,这似乎是一个非常糟糕的选择。

您还表示您正在使用 Firebase Functions。请注意,如果您使用的是免费计划,则从 Firebase 函数调用会受到限制。如果您使用的是其中一种付费计划,则没有任何限制,并且有一个免费套餐应该足以进行测试。

关于javascript - 通过api.ai的函数回调获取json body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45703657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com