【问题标题】:Google Apps Script - SpreadsheetApp.openByUrl() no error but loads nothingGoogle Apps 脚本 - SpreadsheetApp.openByUrl() 没有错误,但什么也不加载
【发布时间】:2019-03-21 17:36:26
【问题描述】:

如果我使用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();
  }
}

【问题讨论】:

  • 只是想提一下,电子邮件确实会更新并标记为已读。所以只是关于电子表格的交互没有完成,也没有给出任何错误。同样,如果我只使用 getActiveSpreadsheet(),所有代码都可以正常工作,但我需要为此使用定时触发器。
  • SpreadsheetApp 类是服务器端而不是客户端。 GmailApp 也是如此。
  • 我觉得我知道的还不够多,抱歉。我不知道为什么它不会工作呢?如果该类是服务器端的,那么 getActiveSpreadsheet() 和 openByUrl() 两个函数应该都可以工作还是都不能工作?我必须对这些东西的工作方式缺乏了解,因为我仍然不知道如何做我需要做的事情,但这对我来说也没有意义,为什么一个工作而另一个不工作,如果他们是服务器端和客户端。

标签: google-apps-script


【解决方案1】:

好的简单的编码眼球

ss.appendRow()

应该是

sheet.appendRow()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多