我正在尝试从部署在 Google App Engine 上的后端上的 Android 应用发出经过身份验证的请求。
我试着关注 this guide但显然我错过了一些东西......
这是我已经完成的:
在 Google Cloud Console 中,我添加了一个 Android 应用程序,提供应用程序包名称(在 AndroidManifest.xml 的 manifest.package 属性中定义)和使用此命令检索的应用程序证书 SHA1 哈希值(我处于 Debug模式,使用调试 keystore ):
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -v -list
现在在 android 应用程序中我尝试获取 token
Account account = mAccountManager.getAccountsByType("com.google")[0]
String scope = "audience:server:client_id:THE_CLIENT_ID_FROM_GOOGLE_CLOUD_CONSOLE_GAVE_ME";
String token = GoogleAuthUtil.getToken(myActivity, account.name, scope);
不幸的是,这段代码系统地引发了 GoogleAuthException("Unknown")
有人知道我做错了什么吗?
最佳答案
我认为您正在范围内使用您的 Android 应用程序的客户端 ID。
这种方式行不通:您必须在 Android 客户端 ID 所在的同一项目中创建 Web 应用程序客户端 ID,并在您的范围内使用该 Web 项目的客户端 ID。
然后在您的 GAE 应用程序中,您可以通过将 Web 应用程序客户端 ID 设置为您的受众来检查 token 的有效性,并使用您的 Android 客户端 ID 来检查授权方。
关于android - 如何从 Android 应用发出 Google App Engine 身份验证请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20358150/