Google附加组件仅在发布

时间:2016-03-01 23:15:09

标签: google-apps-script jira-rest-api urlfetch

我一直在研究这个bug,我似乎无法弄明白,所以任何帮助都会非常感激。

此代码用于集成JIRA和Google表格,问题是一旦我导入的问题数超过62,就会出现“URL Fetch URL Length”错误。现在棘手的部分是,这只发生在附加组件发布时(域范围内,如果重要)。当代码绑定或在测试模式下工作时,它适用于我想要的任意数量的密钥。

它目前的工作原理是将请求分成30个组并分别发送,这就是数字62似乎毫无意义的原因。

我已经尝试过一种解决方法,代码发送的问题数组仅由工作表上的前62个密钥组成,但只要工作表上写的问题超过62个,它仍然失败。

整个代码位于GitHub上:https://github.com/ngovil/Jira_Google-Sheets_Integration.git

这是阵列的分割方式:

     for(var divideby = 0; divideby < Math.ceil(vals.length/batchsize); divideby++){
     var data = getStories(divideby);
     if (data == "") {
         return;
     }
     var numberofrepeats = -1;
     var beginat = -1;
     if(divideby*batchsize+batchsize>=vals.length) numberofrepeats = vals.length;
     else{
        for(var i=0; i<vals2.length; i++){
          if(vals2[i][0] === vals[divideby*batchsize + batchsize][0]){
            numberofrepeats = i;
            i=vals2.length;
          }
        }
      }

这是数据的发送方式:

    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var sheeturl = SpreadsheetApp.getActiveSpreadsheet().getUrl();
    var allData = {issues:[]};
    var data = {startAt:0,maxResults:0,total:1};
    var startAt = 0;
    Logger.log("Making request for %s entries", C_MAX_RESULTS);
    var inter = ["search?jql="];
    if(divideby*30+30>=vals.length) var numberofrepeats = vals.length;
    else numberofrepeats = divideby*30 + 30;
    for (var i = divideby*30; i < numberofrepeats; i++) {
        if(i==numberofrepeats-1) inter.push("issue%20%3D%20", vals[i][0], "%20order%20by%20rank%20&maxResults=", C_MAX_RESULTS, "&startAt=", startAt);
        else inter.push("issue%20%3D%20", vals[i][0], "%20or%20");
    }

    var interStr = inter.join("");
    var temp = getDataForAPI(interStr);
    if(temp == "") return temp;
    data =  JSON.parse(temp);  
    allData.issues = allData.issues.concat(data.issues);
    startAt = data.startAt + data.maxResults;

    return allData;

1 个答案:

答案 0 :(得分:0)

因此,我尝试从其他帐户发布此附加组件,现在它可以完美运行。似乎编译时可能存在错误。感谢任何花时间解决这个问题的人!