【发布时间】:2015-07-27 17:19:00
【问题描述】:
背景
我认为从 Android 访问 Google 服务的推荐方法是使用Google APIs Client Library for Java(对于某些服务,也建议使用播放服务)。
如果您想访问您的用户帐户,您可以使用 oauth2 对用户进行身份验证,但如果您想访问自己的服务,事情似乎不太清楚(例如,我想访问属于我的应用引擎项目的 Google Cloud Storage) .
服务帐号的问题
我在这里看到很多使用服务帐户,我在服务器端使用它们,发现它们是一个相对简单的解决方案,但这需要你部署你的私钥,所以我不认为这可能适用于公共 Android 应用。
解决方案:公共 API 访问
如果您进入云控制台的“凭据”页面:
https://console.developers.google.com/project/[your_project]/apiui/credential
很明显,他们希望您在我所描述的情况下使用“public API access key”。这似乎不是基于 OAUTH 的。
我假设我仍会为此使用“GoogleCredential”类型,但在credential builder 的文档中我看不到如何执行此操作。设置的客户端功能似乎与 oauth2 访问(使用客户端 ID/秘密)有关。
问题
如何使用“公共 API 访问”密钥从 Android 应用访问 Google 服务。
或者,如果我对服务帐户有误 - 它们确实是推荐的解决方案,那么请给我一些证据,因为在我看来,它们肯定不是公开分发应用程序的正确解决方案。
【问题讨论】:
标签: java android google-oauth google-api-java-client google-api-client