我们需要调用 JIRA Rest API 从 Dialogflow 中的给定查询中获取特定信息。
我们需要根据 API 的响应向用户提供响应。但是,Dialogflow 无法通过 Firebase Cloud 函数中的实现从 JIRA API 检索任何响应,因为它总是超时。
根据 Firebase 控制台的日志,执行时间总是超过 6000 毫秒。
同时,如果我使用 postman 调用 JIRA REST API,则只需不到 1 秒即可获得响应。
有人说我们需要使用promise,但我似乎也没有工作。请帮助我应该如何解决这个问题?
请在下面查看我的代码
function checkcontract(agent){
var parameters = request.body.queryResult.parameters;
var customer_id = parameters.customer_id;
var bodyData = JSON.stringify({"jql": "project = CDB AND 'Customer ID' ~ "+customer_id,
"maxResults": 1,
"fieldsByKeys": false,
"fields": [
"summary",
"customfield_11949", //Customer ID custom field
"customfield_11937", // Contract Start Date
"customfield_11938", //Contract End Date
"customfield_11936", //email
"customfield_11946", //default JSD request id
"customfield_11943", //project id
"customfield_11941" //project key
],
"startAt": 0
});
var options = {
method: 'POST',
url: '/rest/api/3/search',
auth: { bearer: authorization_token },
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: bodyData
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(
'Response: ' + response.statusCode + ' ' + response.statusMessage
);
console.log(body);
});
}
编辑:JIRA API 返回对该函数的响应。但是 agent.add("message") 不会向聊天返回任何内容。