【问题标题】:Running another function from DoGet in Apps Script在 Apps 脚本中从 DoGet 运行另一个函数
【发布时间】:2021-09-02 20:29:25
【问题描述】:

我是 Google Apps 脚本的新手。我开发了一个脚本来根据日历标题中的子字符串更改 Google 日历事件颜色。朋友说他们也想要。我尝试将脚本部署为 Web 应用程序,以便他们可以有一个链接来运行它,并很快发现我需要 doGet 或 doPost。但是,我的脚本不需要这些。我尝试将 doGet(e) 添加到我的脚本中,目的是从那里调用我的 main 函数,但我无法完成这项工作。如何将我的简单日历编辑脚本变成网络应用程序?我看到大多数人都有 html 登录页面,但这是必需的吗?

在下面的示例中,当我运行它时,它会立即完成执行。当我将它作为 Web 应用程序运行时,我收到此错误:“脚本已完成但未返回任何内容”。但是,为事件着色的函数没有执行(事件没有被颜色编码)。

function doGet(e) { //I also tried just doGet()
  ColorEvents(); //I also tried ColorEvents and Call ColorEvents
}

function ColorEvents() {
  Logger.log("Color some events");
    var objDateToday = new Date();
   var objDateFuture = new Date();

  objDateFuture.setDate(objDateFuture.getDate() + 7);
  Logger.log(objDateToday + " " + objDateFuture);

  var objCalendarOwned = CalendarApp.getAllOwnedCalendars();
  Logger.log("found number of calendars: " + objCalendarOwned.length);

  for (var i=0; i<objCalendarOwned.length; i++) {
    var objCalendar = objCalendarOwned[i];
    var objEvents = objCalendar.getEvents(objDateToday, objDateFuture);
    for (var j=0; j<objEvents.length; j++) {
      var objEvent = objEvents[j];
      var strTitle = objEvent.getTitle();
      if (strTitle[0] == "%") {
        objEvent.setColor(CalendarApp.EventColor.MAUVE);
      }
    }
  }
}

长期目标是开发其他人可以触发的东西(例如,每天通过日历查看要格式化的事件),所以这可能不是正确的路径,但它会在过渡期间提供一些东西。

【问题讨论】:

  • 请提供minimal reproducible example。当我们可以看到脚本时,我们会更好地工作。 format code你可能想要创建一个插件或者一个库
  • 不确定您的代码中是否有此错字,但在您提供的代码中,调用ColorEvents() 时括号丢失。没有它,该函数将不会被调用。另外,是什么让您认为该功能没有执行?能否提供相应的代码?
  • 是的,括号。并且您确实需要返回 html 或文本,read the documentation
  • 你为什么不给他们一个脚本的副本,让他们从他们的帐户运行?
  • @JanineWhite,我对此很陌生,我目前不知道该怎么做。看起来您可以将项目共享给其他帐户,是这个意思吗?

标签: google-apps-script


【解决方案1】:

好的,我想我找到了问题所在。在测试中,我有不同的脚本文件,里面有相同的功能。我没有意识到,当您单击脚本的“运行”按钮时,它可能会为不同的脚本/文件运行相同的功能,我认为这就是发生的事情。因此,我在该项目的脚本文件中创建了我的所有功能,并且我认为它现在可以正常工作。我很惊讶它会这样工作,所以要保持开放的心态,看看其他地方出了什么问题。

【讨论】:

    猜你喜欢
    • 2012-07-14
    • 2016-12-14
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多