16

我得到一个GoogleAuthException: Unknown error,同时做一个GoogleAuthUtil.getToken

就在我看到的异常之前

GLSUser: GLS error: INVALID_AUDIENCE <email> audience:server:client_id:xxx.apps.googleusercontent.com

我已将 SHA1 从我的发布密钥(包名称)设置为 google api 项目。(顺便说一句,它已成功用于 GCM。)

4

5 回答 5

17

看起来应该可以;这是我的应用程序中的 scope-in​​it 代码,它确实有效。

private static final String SCOPE = "audience:server:client_id:" + SERVER_CLIENT_ID;

所以我觉得客户端ID有问题。请记住

  1. 您必须有一个具有两个客户端 ID 的项目
  2. 一个是用于您的 android 应用程序的,带有 SHA 和包等
  3. 另一个用于您要将令牌发送到的服务器端

来自 #3 的客户端 ID 在 ...:client_id: 之后

于 2013-02-22T20:22:48.977 回答
1

为了记录我的问题,

我通过 AWS Mobile Hub 生成的示例应用程序从 Google 登录返回了相同的 INVALID_AUDIENCE 错误。有几件事要检查,

就像 Tim Bray 上面提到的那样,让您的客户端 ID 成为有效的 Web 客户端 ID(不是 Android)。但也有一个 android 客户端 ID,它具有正确的 SHA-1 指纹(在 debug.keystore 中找到,当您单击运行时,Android Studio 使用它来签署调试版本)和包名称。

注意:AndroidManifest.xml 中列出的包名称并不总是实际的包名称。要找到最终的包名称,请转到 build.gradle 文件并查看 applicationId 字段。配置 Android Client Id 时,请务必在 Developers Console 中输入正确的包名称。

于 2016-10-25T20:27:12.557 回答
0

发生在我的团队中,尽管它在我的设备上运行良好。原来是因为debug.keystore我们的 Eclipse 安装不同。

为了解决这个问题,我们将公司的debug.keystore文件复制到~/.android/ (这是 mac 上的目录,在 linux 和 windows 上是不同的)

于 2014-12-18T11:36:20.583 回答
0

此外,您还必须在 Google API 控制台中设置 oAuth 授权屏幕。

这就是我收到此错误的原因

于 2016-09-19T21:35:24.307 回答
0

通过删除在 .android 文件夹中找到的 debug.keystore 来解决此问题,然后再次运行新项目以生成新的 debug.keystore 文件。然后最终为 Google API 生成一个新的 SHA-1 签名证书。

于 2016-05-17T15:14:30.167 回答