我有一个小型聊天机器人,它会对“测试”这个词做出反应。在阅读这个词时,他应该调用一个 IBM Cloud Function,作为回报,它会尝试注册返回令牌的用户。问题是,身份验证 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 分钟,但这并没有帮助。我也在邮递员中尝试过,在那里我得到了正确的回应。然后我导出了对 javascript 的请求并将其修改为在 Cloud Function 中工作,但它再次返回一个空正文。
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:
[]
遗憾的是,日志没有显示任何错误消息,因为一切正常。