似乎已经有similar question了,但我需要一个解决方案(请继续阅读)以当前用户身份进行身份验证。获取所有同事的日历清单
我在尝试制作一个简单的Google Apps脚本应用程序,使用Google日历检查您的同事(在Google Apps for Work域中)是否当前正在开会。
该脚本将作为当前用户执行。为此,我需要能够获取当前用户(不仅是他们订阅的用户)可用的所有日历的列表,这些列表可以在标准日历Web应用的下拉列表中找到:
的CalendarApp.getAllCalendars()得到所有日历用户拥有或订阅,这不是我所需要。我希望在我的Google Apps for Work网域(例如与整个公司共享)中向我提供可用的完整列表,即使我没有订阅它们。
CalendarList REST API可用于Apps脚本通过Advanced Calendar Service具有相同的限制。
页Calendar for Work Features还提到域范围内的授权委派:
访问域的日历作为一个应用程序
应用程序可以访问域拥有日历,无需用户 凭据,如果认证通过一个服务帐户。服务 帐户必须具有使用全域范围授权 代表团的必要访问权限。
这可能会得到我所需要的,但我不希望我的脚本以管理员权限运行,我希望它以当前访问它的用户身份进行身份验证。
有没有办法?
但我怎么得到我没有订阅的所有日历列表? 'calendar'变量来自你的代码片段? –
@DmitryPashkevich这是不可能的,如果你想获得域中所有日历的列表,你可以尝试获取你所有用户的列表(作为管理函数getUsers())var users = AdminDirectory.Users。 list({domain:“domain.ext”,fields:“users/primaryEmail”}); Logger.log(users); }邮政编码中的“calendar”var是用户的电子邮件地址 – Harold
请参阅我的问题是:“我不希望我的脚本以管理员权限运行,我希望它以当前访问它的用户身份进行身份验证。” –