0

我正在开发一个允许您使用 Google 的日历 API 安排活动的系统。然而,这将是一家小公司的内部使用,他们只需要使用一个 Google 帐户(即一个用于整个公司的帐户),以便每个人都可以访问完全相同的事件。

我已经实现了日历 API 和日程安排功能(在 PHP btw 中),但是在验证用户身份时,他们能够使用任何 Google 帐户登录,包括他们的个人帐户。他们应该只能使用公司帐户进行身份验证,这样事件就不会被安排到个人帐户中。

我想做的是检查经过身份验证的帐户的电子邮件地址,看看它是否与公司的电子邮件地址匹配,如果不匹配,则会显示错误,告诉他们他们使用了错误的帐户。

这会起作用,但它似乎是一个非常低效和丑陋的解决方案(特别是考虑到我可能需要使用 Google+ API 来获取他们的电子邮件地址)。

这样做的推荐方法是什么?

4

1 回答 1

1

如果您使用 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”实际上已被弃用:

重要提示:ClientLogin 已于 2012 年 4 月 20 日正式弃用。它将根据我们的弃用政策继续工作,但我们鼓励您尽快迁移到 OAuth 2.0。

https://developers.google.com/accounts/docs/AuthForInstalledApps

重要提示:AuthSub 已于 2012 年 4 月 20 日正式弃用。它将根据我们的弃用政策继续工作,但我们鼓励您尽快迁移到 OAuth 2.0。

https://developers.google.com/accounts/docs/AuthSub

我的建议是迁移到 OAuth2,问题会自行解决。如果您使用的是两种已弃用的方法之一,您可能必须制定自己的“非常低效且丑陋的解决方案”,如您所说。

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。

于 2013-07-24T19:33:05.087 回答