Google apps script 获取所有同事的列表';日历
似乎已经有了一个解决方案,但我需要一个作为当前用户进行身份验证的解决方案(请继续阅读) 我正在尝试制作一个简单的谷歌应用程序脚本应用程序,它使用谷歌日历来检查你的同事(在谷歌应用程序工作域中)是否正在开会 脚本将作为当前用户执行。为此,我需要能够获得当前用户可用的所有日历的列表(不仅仅是他们订阅的日历),与标准日历web应用程序中的下拉列表相同: 获取用户拥有或订阅的所有日历,这不是我需要的。我希望在我的Google Apps for Work domain(例如,与整个公司共享)中提供日历的完整列表,即使我没有订阅 可通过应用程序脚本访问的应用程序具有相同的限制 该页面还提到了域范围的授权: 作为应用程序访问域日历 应用程序可以访问域拥有的日历,而无需用户 凭据(如果它使用服务帐户进行身份验证)。服务 帐户必须具有使用域范围权限的必要访问权限 代表团 这可能会得到我所需要的,但我不希望我的脚本以管理员权限运行,我希望它作为访问它的当前用户进行身份验证Google apps script 获取所有同事的列表';日历,google-apps-script,google-calendar-api,Google Apps Script,Google Calendar Api,似乎已经有了一个解决方案,但我需要一个作为当前用户进行身份验证的解决方案(请继续阅读) 我正在尝试制作一个简单的谷歌应用程序脚本应用程序,它使用谷歌日历来检查你的同事(在谷歌应用程序工作域中)是否正在开会 脚本将作为当前用户执行。为此,我需要能够获得当前用户可用的所有日历的列表(不仅仅是他们订阅的日历),与标准日历web应用程序中的下拉列表相同: 获取用户拥有或订阅的所有日历,这不是我需要的。我希望在我的Google Apps for Work domain(例如,与整个公司共享)中提供日历的
有办法吗?你需要订阅你想看的日历(并在看完后取消订阅)。这里有一个小演示:
var calendar = "name@domain.ext";
function getCalInfo(){
var cal = CalendarApp.getCalendarById(calendar);
Logger.log(cal);
Logger.log(typeof cal);
var unsubscribe = false;
if(cal==null){
try{
Logger.log("subscribing");
cal = CalendarApp.subscribeToCalendar(calendar);
unsubscribe = true;
}
catch(err){
Logger.log(err);
return;
}
}
if(cal){
Logger.log(cal.getTimeZone());
}
if(unsubscribe){
Logger.log("unsubscribing");
cal.unsubscribeFromCalendar();
}
}
但是,我如何获得所有未订阅日历的列表?
calendar
变量从何而来?@DmitryPashkevich这是不可能的,如果您想获取域中所有日历的列表,可以尝试获取所有用户的列表(作为一个管理函数getUsers(){var users=AdminDirectory.users.list({domain:“domain.ext”,fields:“users/primarymail”});Logger.log(users);}邮政编码中的“calendar”变量是用户的电子邮件地址。请参阅我的问题:“我不希望我的脚本以管理员权限运行,我希望它作为访问它的当前用户进行身份验证。”