通过 Google API 获取 Google 组织中的所有日历
Get All Calendars in Google Org via Google API
目标:我正在尝试获取我的 Gsuite 组织中的所有日历。
问题:我知道我可以使用 CalendarList.list
获取日历列表,但前提是用户或服务帐户的列表中包含所有日历,甚至那么它并不总是准确的,因为日历并不总是被添加到 service account's calendar list 并且用户可能会从他们的列表中删除日历。
问题:有没有办法只获取我的 Google 组织中的每个日历?假设我的域是@someorg.com。我想要每个用户的日历以及通过 api 创建的日历。我在想这可能可以通过 GSuite Admin SDK 实现,但我一直无法找到任何允许我这样做的东西。它只处理与 Calendar
对象不同的 Resources.calendars
。
感谢任何帮助!谢谢!
不幸的是你不能。获取用户有权访问的日历列表的唯一方法是通过 calendarlist.list 方法。这样做的问题是,您必须确保所有用户日历都已实际添加到日历列表中,但情况并非总是如此。
您可以做的是提示用户要求他们与您共享任何其他日历,但这不会很好地与服务帐户一起使用。
您需要使用服务帐户为每个用户获取令牌,为此您需要每个用户的电子邮件,您可以通过 Users.list 请求 [1] 获取该电子邮件。使用每个令牌,您可以为每个模拟用户执行 CalendarList.list 请求 [2],这将检索您订阅的用户日历。
如果您想要用户创建的日历,您可以过滤结果以获取 accessRole
[3] 字段设置为 owner
的日历。您也可以通过将 showDeleted
参数设置为 true [2].
来获取已删除的日历
[1] https://developers.google.com/admin-sdk/directory/v1/reference/users/list
[2]https://developers.google.com/calendar/v3/reference/calendarList/list
[3]https://developers.google.com/calendar/v3/reference/calendarList
目标:我正在尝试获取我的 Gsuite 组织中的所有日历。
问题:我知道我可以使用 CalendarList.list
获取日历列表,但前提是用户或服务帐户的列表中包含所有日历,甚至那么它并不总是准确的,因为日历并不总是被添加到 service account's calendar list 并且用户可能会从他们的列表中删除日历。
问题:有没有办法只获取我的 Google 组织中的每个日历?假设我的域是@someorg.com。我想要每个用户的日历以及通过 api 创建的日历。我在想这可能可以通过 GSuite Admin SDK 实现,但我一直无法找到任何允许我这样做的东西。它只处理与 Calendar
对象不同的 Resources.calendars
。
感谢任何帮助!谢谢!
不幸的是你不能。获取用户有权访问的日历列表的唯一方法是通过 calendarlist.list 方法。这样做的问题是,您必须确保所有用户日历都已实际添加到日历列表中,但情况并非总是如此。
您可以做的是提示用户要求他们与您共享任何其他日历,但这不会很好地与服务帐户一起使用。
您需要使用服务帐户为每个用户获取令牌,为此您需要每个用户的电子邮件,您可以通过 Users.list 请求 [1] 获取该电子邮件。使用每个令牌,您可以为每个模拟用户执行 CalendarList.list 请求 [2],这将检索您订阅的用户日历。
如果您想要用户创建的日历,您可以过滤结果以获取 accessRole
[3] 字段设置为 owner
的日历。您也可以通过将 showDeleted
参数设置为 true [2].
[1] https://developers.google.com/admin-sdk/directory/v1/reference/users/list
[2]https://developers.google.com/calendar/v3/reference/calendarList/list
[3]https://developers.google.com/calendar/v3/reference/calendarList