[英]Why can't I use data from my Google spreadsheet when creating Jira issues using REST API
概括
我正在嘗試在 Google 表格中編寫一個腳本,該腳本允許我在編輯特定單元格時使用 REST API 在 Jira Cloud 中創建問題。 此外,Jira 問題應該包含我從電子表格中提取的信息。
我設法讓觸發器工作,並從 Jira API 獲得了成功的響應。 我可以成功創建問題,但只能使用我放入腳本的問題字段信息。 一旦我嘗試使用電子表格中的數據,它就不再起作用了。
我查看了有關 stackoverflow 是否有任何相關問題,但找不到任何解決此特定問題的問題。
描述
一旦我在電子表格中編輯特定單元格並且我正在使用specialOnEdit()
function,就應該創建一個問題,它允許我定位當前位於包含任何值和第 6 列的最后一行的單元格。我的代碼看起來像這樣
function specialOnEdit(evt) {
var range = evt.range;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('name of my sheet');
var lastRow = sheet.getLastRow();
if(range.getRow() == lastRow && range.getColumn() == 6) {
createIssue()
}
}
createIssue()
function 包含我用於連接到 Jira API 的代碼。 看起來像這樣
function createIssue() {
var url = "https://xxxxx.atlassian.net/rest/api/3/issue";
var username = "xxxxx";
var password = "xxxxx";
var userCredentials = "Basic " + Utilities.base64Encode(username + ":" + password);
var data = {
"fields": {
"summary": "summary",
"issuetype": {
"id": "id",
},
"project": {
"id": "id"
},
"priority": {
"id": "id",
}
}
};
var payload = JSON.stringify(data);
var headers = { "Accept":"application/json",
"Content-Type":"application/json",
"Authorization": userCredentials,
"muteHttpExceptions": "True",
};
var options = { "method":"POST",
"headers": headers,
"payload": payload,
};
var response = UrlFetchApp.fetch(url, options);
}
到目前為止一切順利,一切正常。 如果我編輯目標單元格,則會創建一個 Jira 問題,其中包含我放入相應"fields":
。
現在我想使用我的 Google 表格中的單元格值來填充這些"fields":
這些值再次來自我的最后一行,其中包含任何值,這次是第 1 列。但是,如果我開始在我的createIssue()
function 中為此聲明變量,則腳本不再起作用。 我試過的看起來像這樣
function specialOnEdit(evt) {
var range = evt.range;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('name of my sheet');
var lastRow = sheet.getLastRow();
if(range.getRow() == lastRow && range.getColumn() == 6) {
createIssue()
}
}
function createIssue() {
var url = "https://xxxxx.atlassian.net/rest/api/3/issue";
var username = "xxxxx";
var password = "xxxxx";
var userCredentials = "Basic " + Utilities.base64Encode(username + ":" + password);
var sheet = SpreadsheetApp.getActiveSpreadSheet().getSheetByName('name of my sheet');
var lastRow = sheet.getLastRow();
var summary = sheet.getRange(lastRow, 1);
var data = {
"fields": {
"summary": summary,
"issuetype": {
"id": "id",
},
"project": {
"id": "id"
},
"priority": {
"id": "id",
}
}
};
var payload = JSON.stringify(data);
var headers = { "Accept":"application/json",
"Content-Type":"application/json",
"Authorization": userCredentials,
"muteHttpExceptions": "True",
};
var options = { "method":"POST",
"headers": headers,
"payload": payload,
};
var response = UrlFetchApp.fetch(url, options);
}
如果觸發specialOnEdit()
function,沒有任何反應,但我也沒有在控制台中收到任何錯誤消息。 有誰知道似乎是什么問題? 或者這根本不可能?
var summary = sheet.getRange(lastRow, 1);
應該是var summary = sheet.getRange(lastRow, 1).getValue();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.