我正在编写一个SaaS(软件即服务)Java Web应用程序,需要与Google Calendar集成以满足以下要求 1.能够获得多个Google Apps for Business域用户的忙/闲信息。说,我有两个客户使用谷歌应用程序业务域,@ 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日历以SaaS方式实际创建会议邀请。
是否有可能要求用户提供他/她的谷歌帐户的用户名/密码,以编程方式获取他/她的同事的忙/闲信息,并代表他/她安排活动谷歌日历?或者,我是否必须使用Google Calendar API开发人员密钥+ OAuth?
这似乎是SaaS应用程序的标准用例 - 一个允许用户与Google Apps for Business日历进行交互的Web应用程序 - 但我找不到任何有关如何实现这一目标的文档。任何人都可以帮助我吗?
答案 0 :(得分:1)
首先,直接询问用户的密码是不可取的。始终使用Oauth2。使用日历API时,您还需要拥有开发人员密钥。
关于访问域中人员的忙/闲(或更高)信息,这些人必须设置他们的ACL,以便他们与域中的每个人共享日历(请在此处查看scope.type域:{ {3}})。默认情况下,某些域具有此设置。
如果有获取用户的Oauth2令牌的选项,您可能希望这样做。另一种可能性是服务帐户和域范围的授权:https://developers.google.com/google-apps/calendar/v3/reference/acl
答案 1 :(得分:0)
另一种选择:
用户的主日历ID是他们在Google Apps中的电子邮件地址。此外,无论ACL如何,Google Apps超级管理员都可以自动查看其域内用户的所有日历详细信息。由于此F / B信息,如果您想要/需要避免这种情况,则不需要在域内共享。
在两个Google Apps帐户上使用超级管理员,您可以获取所有用户电子邮件地址(日历ID),然后根据日历ID获取事件列表。从这里开始,您只需要在Java Web应用程序中将时间标记为F / B.