因此,我正在执行一项任务,该任务会选择Google工作表中的最后更新的行,并通过外部API将其发布到另一个系统。
成功执行POST响应后,我希望将Google工作表中的特定列设置为true,否则,如果失败,则应将其设置为false。
我不确定该如何处理,在此感谢您的协助。这是发布到外部API的代码的第一部分
function lastRowData(){
var ss = SpreadsheetApp.getActive()
var sheet = ss.getActiveSheet()
var lastRow = sheet.getLastRow()
var lastCol = sheet.getLastColumn()
var lastRowData = sheet.getRange(lastRow,1,1,lastCol).getValues()
return lastRowData[0]
}
function myFunction() {
var lastRow = lastRowData()
var data = {
'name':lastRow[2],
'client': lastRow[3],
'starts_at':lastRow[5],
'ends_at':lastRow[6],
'project_state':lastRow[4],
};
var payload = JSON.stringify(data);
var options = {
'method': 'POST',
'Content-Type': 'application/json',
'payload' : data,
};
var url = 'https://api.10000ft.com/api/v1/projects?auth=token';
var response = UrlFetchApp.fetch(url, options);
Logger.log(response);
return response.getContentText();
}
理想情况是:
if (response.ok){
activesheet.getRange(lastRow,1,1,lastCol).setvalue("true")
} else {
activesheet.getRange(lastRow,1,1,lastCol).setvalue("false")
}
您可以使用HTTPResponse.getResponseCode()
function getLastRowData(sheet) {
var lastRow = sheet.getLastRow();
var lastCol = sheet.getLastColumn();
var lastRowData = sheet.getRange(lastRow, 1, 1, lastCol).getValues();
return {data: lastRowData[0], row: lastRow};
}
function myFunction() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var lastRowData = getLastRowData(sheet);
var lastRow = lastRowData.row;
var data = lastRowData.data;
var data = {
'name': data[2],
'client': data[3],
'starts_at': data[5],
'ends_at': data[6],
'project_state': data[4],
};
var payload = JSON.stringify(data);
var options = {
'method': 'POST',
'Content-Type': 'application/json',
'payload': payload,
'muteHttpExceptions': true
};
var url = 'https://api.10000ft.com/api/v1/projects?auth=token';
var response = UrlFetchApp.fetch(url, options);
if (response.getResponseCode() === 200) { //or whatever you think will work, 200, 201...
sheet.getRange('K' + lastRow).setValue("true");
}
else {
sheet.getRange('K' + lastRow).setValue("false");
}
}
如果仅设置1个单元格的值,则可以使用Sheet.getRange(row,num)版本(带有2个参数)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句