android - 如何从 Android 应用发出 Google App Engine 身份验证请求?

标签 android google-app-engine oauth google-oauth google-play-services

我正在尝试从部署在 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/

相关文章:

android - 使用 OAuth2 改进异步调用

Android - 全屏而不移动内容

android - 如何使用 achartengine API 替换 Piechart 的图例?

google-app-engine - GAE/去 : datastore iterator too slow

google-app-engine - 谷歌云sql实例 super 权限错误

c# - 如何发布到 GitHub API v3

android - ActionBarSherlock:方向更改 ICS 时可折叠项目崩溃

android - 如何获得 SMS 允许的最大长度?

python - 从 Google 应用引擎迁移到虚拟机

Java Spring : OAuth authentication failed: Unknown Error