如何授予对 linked/secondary Google 帐户的访问权限

How to grant access to linked/secondary Google accounts

我正在开发一个 Android 应用程序,用户必须能够在其中进行身份验证,然后调用 YouTube 数据 API。

使用 Google 登录,使用主帐户对用户进行身份验证没有任何问题,对我和用户来说,一切都很简单且用户友好。

问题是某些 Google 服务(例如 Google+ 和 YouTube)允许单个 Google 帐户拥有多个相关帐户(关联帐户)(例如多个 Google+ 页或多个 YouTube 频道)。

不幸的是,Google 登录似乎没有考虑这个用例。每个用户都被迫登录到他们的主帐户。 在我的场景中,这是一个严重的问题。这意味着一些用户将无法登录他们的辅助 YouTube 频道。

到目前为止,我唯一的解决方案是使用基于网络的身份验证过程。但这在用户体验方面显然是最差的,也意味着我必须使用基于 WebView 的解决方案自己处理所有事情。

我已经构建了一个可以完成所有操作的小型库,但是 Google recommends to use the provided Client libraries for a lot of good reasons. The problem is that all their client libraries have the same problem in Android. (The Google API Client Library for Java 依赖于 AccountManager Android,因此存在相同的 Google 登录问题)

有人知道我是否遗漏了什么吗?有没有一种本地方法来验证用户辅助帐户?还是我被迫使用基于网络的身份验证?

同样的问题已经在3 years old YouTube blog post中解决了,难不成还没有解决办法?

显然目前没有其他方法可以解决这个问题。 这是我正在构建的库的 link,以防其他人遇到同样的问题。 https://github.com/PierfrancescoSoffritti/GoogleWebOAuth

希望Google以后能解决这个问题。

Google Sign-in 对 iOS 有类似的限制,但有一个替代库, Google's GTMAppAuth, that can be used instead. AppAuth 看起来像 Android 的并行库——这能满足这个用例吗?

This SO question 还有一些 iOS-specific 信息。