背景
我认为从Android访问Google服务的推荐方法是使用Google APIs Client Library for Java(对于某些服务也会推荐播放服务)。
如果您想访问用户的帐户,可以使用oauth2对用户进行身份验证,但是如果您想要访问自己的服务(例如我想要访问属于我的Google云端存储) app engine project)。
服务帐户存在问题
我在这里看到的很多是使用服务帐户,我已经在服务器端使用它们并发现它们是一个相对简单的解决方案,但这需要您部署您的私钥,所以我不会&#39 ;认为这适用于公共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服务的关键。
或者,如果我对服务帐户有误 - 并且他们确实是推荐的解决方案,那么请向我展示一些证据,因为它肯定会让我觉得它们不适合公开发布的应用程序。
答案 0 :(得分:0)
好消息是它更容易。您可以使用服务帐户(即专用于您的应用的全新帐户)或常规帐户。
对于您在应用中嵌入密钥的服务帐户,对于您在应用中嵌入刷新令牌的常规帐户。在这两种情况下,请注意安全风险并使用必要的最小范围。
您可以按照How do I authorise an app (web or installed) without user intervention? (canonical ?)
中的步骤获取刷新令牌,而无需编写任何代码