Google Api和android Oauth INVALID_AUDIENCE错误
我得到GoogleAuthException: Unknown error
,同时做GoogleAuthUtil.getToken
。Google Api和android Oauth INVALID_AUDIENCE错误
就异常之前我看到
GLSUser: GLS error: INVALID_AUDIENCE <email> audience:server:client_id:xxx.apps.googleusercontent.com
我已经设置从我的释放键,包名的SHA1,对谷歌的API项目。 (顺便说一下,它正在成功应用于GCM。)
看起来像应该工作;这里是我的应用程序的scope-init代码,它可以工作。
private static final String SCOPE = "audience:server:client_id:" + SERVER_CLIENT_ID;
所以它闻起来像我的客户端ID有问题。请记住,
- 你必须有两个客户端ID
- 一个项目是一个将Android应用,与SHA &包&等
- 另一种是在服务器端,你是打算送令牌关闭以
这是一个从#3的客户端的ID去后...:CLIENT_ID:
正巧一个在我的团队虽然它在我的设备上运行正常。 原来是因为我们的eclipse安装上有一个不同的debug.keystore
。
为了解决这个问题,我们已经复制了公司的debug.keystore
文件~/.android/
(这是在Mac上的目录,它是在Linux和Windows不同)
通过删除您发现您的debug.keystore解决这个问题。 android文件夹,然后再次运行新项目以生成新的debug.keystore文件。 然后最后为Google API生成一个新的SHA-1签名证书。
此外,您还必须在Google API控制台中设置oAuth授权屏幕。
这就是为什么我得到这个错误
在记录我的问题的兴趣,
我有同样的INVALID_AUDIENCE错误从谷歌签入通过AWS移动枢纽产生的示例应用程序回来。有几件事要检查,
像蒂姆布雷注意上面,使您的客户端ID为有效的网络客户端ID(不是Android)。但也有一个Android客户端ID,它具有正确的SHA-1指纹(在您单击Run时用于签署调试版本的debug.keystore中找到)和包名称。
注意:AndroidManifest.xml中列出的软件包名称并不总是实际的软件包名称。要找到最终的软件包名称,请转到build.gradle文件并查看applicationId字段。确保在配置Android客户端ID时在Developers Console中输入正确的软件包名称。
谢谢,就是这样。 – Alok 2013-02-23 03:27:14
@Alok ....我遇到了同样的问题。我在端点api中的受众中使用web client_id,也在android受众范围中使用。仍然看到相同的认证错误。你是如何生成web client_id的?我去了Google APIs控制台,为redirect uri&javascript origin的空白Web应用程序生成了一个Client Id。那是对的吗? – plspl 2013-04-05 23:49:02
这样做的另一个常见原因是注册调试证书散列并使用发布进行测试(反之亦然)。 – 2013-05-19 15:45:48