Итерация через массив вызовов API (GAS / Javascript) - PullRequest
1 голос
/ 15 октября 2019

Я все еще очень плохо знаком с JS и GAS. У меня есть вызов API для получения определенных данных из системы API gov.uk. Я дошел до того, что я могу вызвать одну переменную (в данном случае VRM) и получить из нее определенные части данных, которые мне нужны, но я бы хотел добавить другую версию, где я мог бы поместить большой список VRM ви получить 1 часть (дату) назад и добавить эту дату рядом с этим VRM. Я попытался добавить цикл for для зацикливания VRM в массиве, и я тоже пытался добавить этот код в цикл for, но безуспешно.

Вот мой код (пустые ключи и ссылки по понятным причинам);Любые предложения с благодарностью.

function motapi(reg) {

 // Clear Sheet before running
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var destSheet = ss.getSheetByName("regList");
  var clearPrevious = destSheet.getRange('B2:B').clearContent(); 
  var lastRow = destSheet.getLastRow();

  //call api
  var vrm = SpreadsheetApp.getActiveSheet().getRange(2,1).getValue();
    var keyoptions = {
      method : "GET",
      headers : {
    "Accept": "application/json+v6",
    "x-api-key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      }
  };
  var url = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' + vrm;
  var response = UrlFetchApp.fetch(url, keyoptions);
  var prompt = vrm + " | API call complete";

 // Logger.log(response)

  //parse response
  // var json = JSON.parse(response);
  var json = response.getContentText();
  var data = JSON.parse(json);

  Logger.clear();
 // Logger.log(data);
  // log seperate parts of json parse

 // Logger.log(data[0]["motTests"]);
 Logger.log(data[0].motTests[0].expiryDate);

  var dataSet = data[0].motTests //[0].expiryDate;


 // Log expiry dates

  var rows = [],
    data;
  for (i = 0; i < dataSet.length; i++) {
    data = dataSet[i];
    rows.push([data.expiryDate]); //your JSON entities here
  };

 // Logger.log(rows);

// return api call variables to function
  return {
      motdata: json,


};
}

function goodWay() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('regList');
var rangeData = sheet.getDataRange();
var lastColumn = rangeData.getLastColumn();
var lastRow = rangeData.getLastRow();
var searchRange = sheet.getRange(1,1, lastRow-1, lastColumn-1);
var motApi = motapi();

  // Get array of values in the search Range
  var rangeValues = searchRange.getValues();
  Logger.log(rangeValues);
  // Loop through array and if condition met, add relevant
  // background color.
  for ( i = 0; i < lastColumn - 1; i++){
    for ( j = 0 ; j < lastRow - 1; j++){
      if(rangeValues[j][i] === "-"){
        sheet.getRange(j+1,i+2).push(motApi);
      }else if (rangeValues[j][i] === 0){
        sheet.getRange(j+2,i+2).setValue();
      }; 
    };
  };

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...