【问题标题】:JavaScript: Pass Google Sheet cell value as Variable into POST URLJavaScript:将 Google 表格单元格值作为变量传递到 POST URL
【发布时间】: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


【解决方案1】:

我意识到 project_id 选择了错误的单元格,所以改变的只是变量中的行号:

var project_id = lastRow[0][40];

【讨论】:

    猜你喜欢
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多