我正在编写一个SaaS (软件即服务) Java web应用程序,需要与谷歌日历集成,以满足以下要求1。能够获得多个谷歌应用程序的空闲/忙碌的信息为商业领域的用户。比方说,我有两个使用谷歌应用业务域的客户,@abc.com和@def.com。2.当UserA (拥有a@abc.com)登录到我的java应用程序时,他需要从我的Java应用程序中查看他的同事(比如b@abc.com)的忙/闲信息。而且,他将能够在我的Java应用程序中创建日历事件。3.类似地,UserC (拥有c@def.com)登录到我的java应用程序,他将需要从我的Java应用程序中查看他的同事(比如d@def.com)的忙/闲信息。他还需要能够从我的Java应用程序中创建日历事件。
本质上,我试图用日程安排助手(获取同事的忙/闲信息)建立类似于Outlook会议安排的东西,并用Google Calendar以SaaS的方式实际创建会议提示。
是否可以要求用户提供他/她的google帐户的用户名/密码,以编程方式获得他/她同事的忙/闲信息,并代表他/她在google日历上安排活动?或者,我必须使用Google Calendar API Developer Key + OAuth吗?
这似乎是SaaS应用程序的标准用例--一个允许用户与Google Apps for Business日历交互的web应用程序--但我找不到任何关于如何实现这一点的文档。有谁可以帮我?
发布于 2014-09-01 15:05:22
首先,直接向用户索要密码是不好的。请始终使用Oauth2。使用日历API时,您还需要有开发人员密钥。
至于访问域中的人的忙-闲(或更高)信息,这些人必须设置他们的ACL,以便与域中的每个人共享日历(请查看此处的scope.type域:https://developers.google.com/google-apps/calendar/v3/reference/acl)。某些域在默认情况下具有此设置。
如果可以选择获取用户的Oauth2令牌,那么您可能希望这样做。另一种可能是服务帐户和全域委派:https://developers.google.com/drive/web/delegation
发布于 2014-09-03 04:52:48
另一种选择:
用户的主要日历ID是他们在Google Apps中的电子邮件地址。此外,Google Apps超级管理员可以自动查看其域中用户的所有日历详细信息,而无需考虑ACL。正因为如此,如果你想/需要避免这种情况,餐饮信息不需要在域内共享。
在两个Google Apps帐户上使用超级管理员,您可以获得所有用户电子邮件地址(日历ID),然后根据日历ID获得事件列表。在这里,您只需在Java web应用程序中将时间标记为F/B即可。
https://stackoverflow.com/questions/25564763
复制相似问题