谷歌应用程序的工作-日历API -读取所有组织员工日历



在我们的组织中,我们使用"Google Apps for Work",我需要定期导出所有员工的日历数据,以便自动统计他们花在会议上的时间。

如果可能的话,你能提示我一下吗?目前,我找到的官方解决方案要求每个用户通过OAuth登录,并授予我的应用程序访问其日历的权限,更重要的是,授予的凭据将在某个时间点过期。

然而,我需要实现相同的结果,但作为"后端服务"与管理权限没有用户登录和应用程序批准,这是可能的吗?或者谷歌日历被认为是私人的东西,即使是"谷歌工作应用程序",每个用户都需要单独授予权限?

提前感谢!关于

然而,我需要实现相同的结果,但作为"后端服务"与管理权限没有用户登录和应用程序批准,这是可能的吗?

你要找的是服务账户。使用服务帐户,您可以代表域中的用户访问数据,这有时被称为"委托域范围内的权限"。幸运的是,你可以在Google Apps for Work中使用它。

如果你有一个Google Apps域名,如果你使用Google Apps for Work例如,Google Apps域的管理员可以授权一个应用程序访问用户数据代表用户在谷歌应用程序域。例如,使用Google Calendar API的应用程序将事件添加到Google Apps域中所有用户的日历中会使用服务帐户访问Google Calendar API吗代表用户

下面是使用P12文件时使用Python的代码片段:

from oauth2client.service_account import ServiceAccountCredentials
client_email = '123456789000-abc123def456@developer.gserviceaccount.com'
scopes = ['https://www.googleapis.com/auth/sqlservice.admin']
credentials = ServiceAccountCredentials.from_p12_keyfile(
client_email, '/path/to/keyfile.p12', scopes=scopes)

检索所有日历资源

要检索与特定日历关联的资源条目的第一页,向资源提要URL发送一个以正斜杠结尾的HTTP GET请求。如验证中所述,包括授权头。

GET https://apps-apis.google.com/a/feeds/calendar/resource/2.0/{domain name}/

可选地,你可以发送一个HTTP GET请求,在start参数中带一个空字符串到资源提要URL。

GET https://apps-apis.google.com/a/feeds/calendar/resource/2.0/{domain name}/?start=""

最新更新