Google apps script CalendarApp.getCalendarById(电子邮件)为我组织中的某些人员返回空值

Google apps script CalendarApp.getCalendarById(电子邮件)为我组织中的某些人员返回空值,google-apps-script,google-calendar-api,Google Apps Script,Google Calendar Api,我正在谷歌应用程序脚本中使用CalendarApp.getCalendarById(电子邮件)。这对我自己的日历和组织中的另一个人来说都很好。但是,对于许多其他人来说,这是失败的(返回null),即使是我拥有完全查看权限的人 我如何让它返回他们的日历?您必须订阅此人的谷歌日历才能使其正常工作。您可以通过选择以下选项来执行此操作: 添加日历>订阅日历 然后输入此人的电子邮件地址 这意味着他们的日历必须在谷歌日历的“其他日历”部分始终可见 另一种选择是使用高级日历API,它没有这个要求 这是我写的

我正在谷歌应用程序脚本中使用
CalendarApp.getCalendarById(电子邮件)
。这对我自己的日历和组织中的另一个人来说都很好。但是,对于许多其他人来说,这是失败的(返回null),即使是我拥有完全查看权限的人


我如何让它返回他们的日历?

您必须订阅此人的谷歌日历才能使其正常工作。您可以通过选择以下选项来执行此操作:

添加日历>订阅日历

然后输入此人的电子邮件地址

这意味着他们的日历必须在谷歌日历的“其他日历”部分始终可见



另一种选择是使用高级日历API,它没有这个要求

这是我写的一个函数,用于自动订阅所有用户。你只需要提供电子邮件列表

  var emails = [] // list all emails here

  emails.forEach((email) => {
    try {
      CalendarApp.subscribeToCalendar(email)
      Logger.log("Email: %s, Timezone: %s", email, CalendarApp.getCalendarById(email).getTimeZone())
    } catch (e) {
      Logger.log("this email failed: %s", email)
    }
  })
}