gpt4 book ai didi

javascript - 通过 IBM Watson Chatbot 触发身份验证

转载 作者:行者123 更新时间:2023-12-01 00:46:19 27 4
gpt4 key购买 nike

我有一个小型聊天机器人,它对“测试”这个词使用react。在阅读这个单词时,他应该调用一个 IBM Cloud Function,该函数反过来尝试注册返回 token 的用户。问题是,身份验证 API 需要大约 30 秒才能响应,而 IBM Cloud 函数会立即执行。所以我的回答总是这样

    {
"body": {},
"headers": {"Content-Type": "application/json" },
"status": 200
}

But it should actually return the token in the body
{
"body": { "token": ... },
...
}

我已经尝试将超时设置为 5 分钟,但这没有帮助。我也在 postman 中尝试过,在那里我得到了正确的响应。然后我导出了 JavaScript 请求并将其修改为在云函数中工作,但它再次返回一个空主体。

var request = require("request");

function main({id=123}) {
var options = { method: 'POST',
url: 'ip:port/v1/authentication',
headers:
{
"Host": "ip:port",
"Content-Type": "application/json" },
body: { username: '---', password: '---' },
json: true };

var result = { error: "No result was received" };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(`Response body is: ${response.body}`);
result = { token: response.body.token };
});


return {
statusCode: 200,
headers: { "Content-Type": "application/json" },
body: { token: result["token"] }
};
}

下面您可以看到我收到的消息

Activation ID:
...
Results:
{
"body": {},
"headers": {
"Content-Type": "application/json"
},
"statusCode": 200
}
Logs:
[]

遗憾的是,日志没有显示任何错误消息,因为一切都在逻辑上正常工作。

最佳答案

这是一个 Node.js 新手错误。

request 是一个异步调用。本体

      if (error) throw new Error(error);
console.log(`Response body is: ${response.body}`);
result = { token: response.body.token };

当请求完成时执行。返回

    return {
statusCode: 200,
headers: { "Content-Type": "application/json" },
body: { token: result["token"] }
};

应该在这个 body 里。在 token 请求完成之前,如果您有 token ,它将立即返回,而无需 token 。

所以你的代码应该是 -


request(options, function (error, response, body) {
if (error) {
return {
statusCode: 500,
body: { error: error }
};
}
console.log(`Response body is: ${response.body}`);
result = { token: response.body.token };

return {
statusCode: 200,
headers: { "Content-Type": "application/json" },
body: { token: result["token"] }
};

});


关于javascript - 通过 IBM Watson Chatbot 触发身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57326331/

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