1

我们需要调用 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") 不会向聊天返回任何内容。

4

0 回答 0