Как добавить данные об изменениях продаж в гугл листах, если он добавляется через API - PullRequest
0 голосов
/ 26 февраля 2020

A есть таблица в Google Sheets, где я получаю данные из контактной формы сайта через API. Мне нужно добавить данные для каждого представления (строки таблицы) в отдельном столбце. Я попробовал fuction onEdit, но он работает только для ручных изменений и не работает, если продает изменения через API. Что я должен изменить?

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var idCol = e.range.getColumn();
  var idRow = e.range.getRow();
  if (idCol == 1 && sheet.getName() == "Лист1") {
    var Value = e.range.offset(0, +2).getValues(); // Смотрим что в ячейке с лева на 2
    if (Value == "") {
      var vartoday = getDate();
      var varnow = getTime();

      sheet.getRange(idRow, 3).setValue(vartoday);
      sheet.getRange(idRow, 4).setValue(varnow);
    }
  }
}

// Returns YYYYMMDD-formatted date.
function getDate() {
  var today = new Date();
  today.setDate(today.getDate());
  //return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
  return Utilities.formatDate(today, "GMT+03:00", "yyyy.MM.dd");
}

function getTime() {
  var today = new Date();
  today.setDate(today.getDate());
  //return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
  return Utilities.formatDate(today, "GMT+03:00", "HH:mm");
}

1 Ответ

0 голосов
/ 26 февраля 2020

Вопрос:

Можно ли запускать триггеры, например onEdit (e) , если ячейка была изменена с помощью Sheets API ?

Ответ

Нет, поскольку выполнение сценариев и запросы API не вызывают запуск триггеров, обратите внимание на Ограничения

Выполнения сценариев и Запросы API не вызывают запуск триггеров. Например, вызов FormResponse.submit () для отправки нового ответа формы не приводит к запуску триггера отправки формы.

...