首页 > 解决方案 > 通过 Google API 获取 Google 组织中的所有日历

问题描述

目标:我正在尝试获取 Gsuite 组织中的所有日历。

问题:我知道我可以获取日历列表,CalendarList.list但前提是用户或服务帐户在其列表中包含所有日历,即使那样它也不总是准确的,因为日历并不总是被添加到服务帐户的日历列表中并且用户可能会从他们的列表中删除日历。

问题:有没有办法只获取我的 Google 组织中的每个日历?假设我的域是@someorg.com。我想要每个用户的日历以及通过 api 创建的日历。我在想这可能通过 GSuite Admin SDK 实现,但我找不到任何可以让我这样做的东西。它只处理Resources.calendars与对象不同的Calendar对象。

任何帮助表示赞赏!谢谢!

标签: google-apicalendargoogle-calendar-apigoogle-admin-sdk

解决方案


您需要使用服务帐户为每个用户获取令牌,为此您需要每个用户的电子邮件,您可以通过 Users.list 请求 [1] 获得该电子邮件。使用每个令牌,您可以为每个模拟用户执行 CalendarList.list 请求 [2],这将检索您订阅的用户日历。

如果您想要用户创建的日历,您可以过滤结果以获取accessRole[3] 字段设置为的日历。您也可以通过将参数设置为 true [2]owner来获取已删除的日历。showDeleted

[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


推荐阅读