【发布时间】:2019-12-02 11:50:27
【问题描述】:
所以我有这段代码应该从谷歌表中获取 project_id 并将其附加到 URL 中。我添加了加号 (+) 但仍然无法从谷歌表中选择 project_id。如果没有此参数,将无法发布。它没有抛出任何错误,但仍然无法发布到项目的系统。这是代码:我做错了什么?
function sendBudget(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
// used getLastRow() function [1] to narrow the array to have only cells with data.
var range = sheet.getRange("AO2:AO"+sheet.getLastRow()).getValues();
var searchString = "3";
for (var i = 0; i<range.length; i++) {
if(range[i][0] == searchString) {
var lastRow = sheet.getRange(2+i,1,1,41).getValues();
var project_id = lastRow[0][40];
var data = {
'amount':lastRow[0][7]*10,
};
var payload = JSON.stringify(data);
var options = {
'method': 'POST',
'Content-Type': 'application/json',
'payload' : data,
};
var url = 'https://vnext.10000ft.com/api/v1/projects/'+ project_id +'/budget_items?item_type=TimeFeesDays&auth=token';
var response = UrlFetchApp.fetch(url , options);
if (response.getResponseCode() === 200) {
var json = JSON.parse(response);
var id = json["id"];
sheet.getRange(2+i, 41).setValue(4);
}
else {
sheet.getRange(2+i, 41).setValue(5);
}
}
}}
【问题讨论】:
-
您好@levi,您的代码似乎没有任何编程错误。我可以请您分享您正在使用的工作表吗?至少,您能否描述一下工作表的哪一列是项目 ID 以及它们是如何布局的?此外,您可以在创建
url后立即尝试使用Logger.log(url),以便打印它并可能找到正在发生的事情。干杯 -
嗨@carlesgg97,显然我在定义变量project_id 时使用了错误的行号并且没有注意到这一点。在你告诉我这张表后,我回去手动计数并意识到它应该是 var project_id = lastRow[0][39];。感谢您的帮助。
标签: javascript arrays json post google-sheets-api