Google Apps Script - SpreadsheetApp.openByUrl () без ошибок, но ничего не загружается - PullRequest
0 голосов
/ 21 марта 2019

, если я использую SpreadsheetApp.getActiveSpreadsheet(), это работает, но я не могу запустить этот скрипт с минутным триггером, потому что у него нет активной электронной таблицы.я попытался использовать SpreadsheetApp.openByUrl(), который запускается вручную в редакторе сценариев, а также без ошибок запускается из минутного триггера.

моя проблема в том, что на моем реальном листе не обновляются ячейки, которые он должен выводитьна.я думаю, что это не помечает электронные письма как прочитанные, но я уже получаю так много постоянно, что в настоящее время это трудно проверить.

https://jsfiddle.net/29Ls3me4/1/

function myFunction() {

  //var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ss = SpreadsheetApp.openByUrl("https://docs.google*****************************/edit");
  var sheet = ss.getSheetByName("sheet1");

  var threads = GmailApp.search ('label:unread "Thank you for your order!" -fwd: -re: -failure'); //search string

  for (var i=0; i<threads.length; i++)
  {
    var messages = threads[i].getMessages();

    for (var j=0; j<messages.length; j++)
    {
      var msg = messages[j].getPlainBody();
      var sub = messages[j].getSubject();
      var dat = messages[j].getDate();
      var to = messages[j].getTo();

      var dateString =
    dat.getUTCFullYear() + "/" +
    ("0" + (dat.getUTCMonth()+1)).slice(-2) + "/" +
    ("0" + dat.getUTCDate()).slice(-2);

      var name = messages[j].getSubject();
      var invoicenumber = name.match(/\d/g);

      if(invoicenumber == null){
        invoicenumber = "null";
      } else {
        invoicenumber = invoicenumber.join("");
      }

      ss.appendRow([invoicenumber, dateString, to, sub, msg])
    }
     threads[i].markRead();
     //threads[i].markUnread();
  }
}

1 Ответ

0 голосов
/ 21 марта 2019

хорошо, простое кодирование глазных яблок

ss.appendRow()

должно было быть

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