0

我正在尝试按照此处的说明进行操作:

验证来自 Android 应用的后端调用

我正在扩展我在这里提出的问题:

识别哪个 android 应用程序正在与我的 appengine 应用程序联系

在我的测试环境中一切顺利。我的应用程序在 Eclipse 中使用了一个 debug.keystore,我什至从我对 GoogleAuthUtil.getToken() 的调用中收到了令牌。然后我将我的代码复制到将要使用的实际项目中。我得到了密钥库(我从之前在 google play 上发布的内容中保存了它)并用它在 Google API 控制台上创建了一个新的客户端 ID。

然后我使用 eclipse 导出我的项目,但是在使用正确的密钥库和关联的 ID 之后,我没有得到令牌。

与此同时,我一直在尝试不同的事情。我有一个为我的应用引擎应用程序制作的 ID。我在 android 应用程序中使用了它,并获得了一个令牌。我不知道天气或当我在我的应用程序引擎网站上检查它时是否会清除该特定令牌(我怀疑不是),但我从中获得了一个令牌。

我有点假设我应该与我的 android 调用 GoogleAuthUtil.getToken() 一起使用的 ID 应该来自“已安装应用程序的客户端 ID”部分(Google API 页面)。不是这样吗?只有在那里您可以将应用程序类型设置为“Android”并且包名称以匹配您的应用程序......对吗?

4

1 回答 1

1

我假设您使用以下格式指定 client_id:

观众:服务器:client_id:$client_id

正如上面的格式试图暗示的那样,此 client_id 用于您的家庭服务器,在本例中为 AppEngine 应用程序的 client_id(Web 应用程序 client_id)。如果您正确配置 AppEngine 应用程序,它应该在 AppEngine 中很好地验证。

同样,您的 Android 应用程序要求提供令牌并命名您的 AppEngine 应用程序。您无需在请求中命名您的 Android 应用程序的 client_id,因为 Android 平台可以根据您使用密钥库工具计算的包名称和证书哈希来识别您的应用程序。

于 2013-01-18T06:30:30.530 回答