我有一个用于教育帐户和应用程序脚本的Google应用程序,该应用程序脚本在小工具中运行,可以获取用户所有/拥有的所有日历。然后,我根据他们的角色生成网址。看起来,管理员用户可以看到他们的所有日历,但普通用户需要专门点击“订阅日历”或访问https://www.google.com/calendar/render#main_7,然后重新加载小工具才能查看他们的日历。在iframe中生成多个日历
if (role == "student") {
url = "https://www.google.com/calendar/embed?
showTitle=0&showTabs=1&showCalendars=1&height=600&wkst=2&mode=DAY&showTitle=0&" + replaceStr + "&ctz=Australia%2FVictoria&dates=" + startDate + "/" + startDate;
} else if (role == "parent") {
url = "https://www.google.com/calendar/embed?showTitle=0&showTabs=1&showCalendars=1&height=600&wkst=2&mode=MONTH&showTitle=0&" + replaceStr + "&ctz=Australia%2FVictoria&dates=" + startDate + "/" + startDate;
} else if (role == "teacher") {
url = "https://www.google.com/calendar/embed?showTitle=0&showBorderTitle=1&showTabs=1&showCalendars=1&height=600&wkst=2&mode=WE EK&showTitle=0&" + replaceStr + "&ctz=Australia%2FVictoria&dates=" + startDate + "/" + startDate;
} else {
url = "https://www.google.com/calendar/embed?showTitle=0&showBorderTitle=1&showTabs=1&showCalendars=1&height=600&wkst=2&mode=MO NTH&showTitle=0&" + replaceStr + "&ctz=Australia%2FVictoria&dates=" + startDate + "/" + startDate;
}
这里是获取所有用户的日历代码:
var calendars = CalendarApp.getAllCalendars();
var calendarIDs = [];
for (var i=0;i<calendars.length;i++) {
calendarIDs.push(calendars[i].getId());
}
Logger.log(calendarIDs);
return calendarIDs;
}
有没有解决这个问题的方法吗?我已经尝试了谷歌日历的权限,编辑url参数并使用UrlFetchApp在我的应用程序脚本中获取https://www.google.com/calendar/render#main_7以异步加载页面而没有成功。任何意见,或如果任何人有这样的问题将不胜感激。
UPDATE我能够显示用户拥有的日历,但共享给所有域用户的日历无法查看,除非执行上述过程。我们是否无法显示不公开且不属于用户所有的日历,只能共享?
我不知道我在您的文章看问题的任何地方? – dman2306
对不起,我会尽快澄清 – Tyron