0

当我添加dfStatus.error.count到要写入的数组时,下面的脚本将“未定义”返回到 Google 表格。

function getDatafeedStatus() {
  var d = new Date();
  var ar = [];
  for (var a in FEEDS) {
    for (var i = 0; i < FEEDS[a].length; i++) {
      try {
        var dfStatus = ShoppingContent.Datafeedstatuses.get(a, FEEDS[a][i]);
        // see https://developers.google.com/shopping-content/v2/reference/v2/datafeedstatuses for detail on this API call
        ar.push([d, a, FEEDS[a][i], dfStatus.processingStatus, dfStatus.lastUploadDate, dfStatus.itemsValid, dfStatus.errors.count]);
      } catch (e) {
         Logger.log(e.message); // check View > Logs after running the script if a feed does not appear to be fetching correctly
      }
    }
  }
  appendArrayToSheet(ar, 'status');
}

/**
  * Add an array to the bottom of a sheet. If the sheet doesn't exist, it is created.
  * @param {array} ar - the array to write
  * @param {string} sheetName - the name of the sheet to which to write
  */
function appendArrayToSheet(ar, sheetName){
    if (ar.length !== 0 && ar[0].length !== 0){
      var ss =  SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName(sheetName);
      if (sheet == null) { 
        sheet = ss.insertSheet();
        sheet.setName(sheetName);
      };
      var range = sheet.getDataRange();
      var row = range.getLastRow() + 1;
      var newRange = sheet.getRange(row, 1, ar.length, ar[0].length);
      newRange.setValues(ar);
}

有什么想法吗?我必须说我不是 JavaScript 专家。我正在尝试修改已经在其他地方使用的代码。

4

0 回答 0