我正在开发一个系统,允许您使用Google的日历API安排活动。但是,这将是一个小公司的内部使用,他们只需要使用一个谷歌帐户(即整个公司一个),这样每个人都可以访问完全相同的事件。
我已经实现了日历API和日程安排功能(以PHP顺便说一句),但在对用户进行身份验证时,他们可以使用任何Google帐户登录,包括他们的个人帐户。他们应该只能使用公司帐户进行身份验证,以便不会将事件安排到个人帐户中。
我想要做的是检查经过身份验证的帐户的电子邮件地址,看它是否与公司的电子邮件地址匹配,如果没有,则会显示错误,告诉他们他们的帐号错误。
这样可行,但这似乎是一个非常低效和丑陋的解决方案(特别是考虑到我可能需要使用Google+ API来获取他们的电子邮件地址)。
这样做的推荐方法是什么?
(另外,日历api文档很糟糕。那是什么!)
答案 0 :(得分:0)
如果您使用Google的OAuth2机制进行身份验证,则实际上您必须在Google API控制台(https://code.google.com/apis/console)中注册您的应用,并向您的应用提供客户端密码,客户端ID,授权uri等。在此身份验证机制下,您的用户别无选择,只能使用API控制台中注册的帐户进行身份验证,因此使用“其他”帐户进行身份验证时没有任何问题。
Google关于使用备用(非OAuth)身份验证方法的建议如下:
AuthSub和ClientLogin是Google的专有授权API,可替代大多数Google API的OAuth。如果可能,您应该避免使用这些服务。如果您已有使用它们的应用程序,则应迁移到上述建议的选项。
https://developers.google.com/gdata/docs/auth/overview
此外,“ClientLogin”& “AuthSub”实际上已被弃用:
重要提示:自2012年4月20日起,ClientLogin已正式弃用。它将继续按照我们的弃用政策运行,但我们建议您尽快迁移到OAuth 2.0。
https://developers.google.com/accounts/docs/AuthForInstalledApps
重要提示:截至2012年4月20日,AuthSub已正式弃用。它将继续按照我们的弃用政策运行,但我们建议您尽快迁移到OAuth 2.0。
https://developers.google.com/accounts/docs/AuthSub
我的建议是迁移到OAuth2,问题解决了。如果您正在使用2种弃用方法中的一种,您可能必须制定自己的“非常低效和丑陋的解决方案”,如您所说。
Google日历文档实际上非常广泛:https://developers.google.com/google-apps/calendar/
他们真的很容易吗?不,但有一点他们不是很缺乏。 PHP客户端库在这里:
https://code.google.com/p/google-api-php-client/
这里有一个PHP示例:
https://code.google.com/p/google-api-php-client/source/browse/trunk/examples/calendar/simple.php
请注意,日历的大多数Google文档都假定使用了OAuth2。