0

在我们的组织中,我们使用“Google Apps for Work”,并且需要定期导出所有员工的日历数据,以便在会议上花费自己的时间花费。Google Apps for Work - 日历API - 阅读所有组织员工日历

你能暗示我是否有可能吗? 现在,the official solution I found要求每个用户通过OAuth登录并授予我的应用程序访问其日历的权限,更重要的是,授予的凭据将在某个时间点到期。

但是,我需要达到相同的结果,但作为“后端服务”管理员权限没有用户登录和应用程序审批,是否有可能? 或谷歌日历被认为是私人的东西,即使是“Google Apps for Work”,每个用户都需要单独授予权限?

预先感谢您! Regards

回答

1

但是,我需要达到相同的结果,但作为“后端服务”管理员权限没有用户登录和应用程序审批,这有可能吗?

您要找的是service accounts。通过服务帐户,您可以代表域中的用户访问数据,有时也称为“委托全域权限”。幸运的是,您可以将其用于Google Apps for Work。

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

这里的谷歌日历API使用Python时using a P12 file一个片段:

from oauth2client.service_account import ServiceAccountCredentials 

client_email = '[email protected]' 
scopes = ['https://www.googleapis.com/auth/sqlservice.admin'] 

credentials = ServiceAccountCredentials.from_p12_keyfile(
client_email, '/path/to/keyfile.p12', scopes=scopes) 

Retrieving all calendar resources

要检索与特定日历相关联的资源项的第一页,将以正斜杠结尾的HTTP GET请求发送到资源供稿网址。按照身份验证中所述包含授权标头。

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

(可选)您可以将start参数中的空字符串的HTTP GET请求发送到资源供稿网址。

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

谢谢!非常帮助! – Briksins