如果您使用 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。