com.google.android.gms.auth.GoogleAuthException:getToken(未知源)异常
在我的Android应用程序中,我试图让google token在我的google app engine后端服务器上进行验证。但我总是有这样的例外:com.google.android.gms.auth.GoogleAuthException:getToken(未知源)异常,android,google-app-engine,google-authentication,Android,Google App Engine,Google Authentication,在我的Android应用程序中,我试图让google token在我的google app engine后端服务器上进行验证。但我总是有这样的例外: com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception 我的代码: private Account mAccount = AccountManager.get(this).getAccountsByType(GoogleAuth
com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception
我的代码:
private Account mAccount = AccountManager.get(this).getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE)[0];
private static final String SCOPE = "audience:server:client_id:" +Constants.WED_CLIENT_ID;
String token = GoogleAuthUtil.getToken(LoginActivity.this, mAccount.name, SCOPE);
我已经尝试了Stackoverflow中提出的所有解决方案 经过两天的研究,我发现当你在谷歌云控制台->你的项目->API和身份验证中注册你的android应用程序时,它要求你输入指纹以生成ClientID,不知何故我的指纹是错的(我意外地在这个cmd
keytool-exportcert-alias androiddebugkey-keystore~/.android/debug.keystore | openssl sha1
之前添加了$
),因此它给了我错误的指纹,是以下问题的根本原因:
com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception.
几个小时后,我发现在您的作用域字符串(
“受众:服务器:客户端id:…”
)中,您必须使用web应用程序的客户端id,而不是android应用程序
android应用程序的客户端ID未使用。它仅用于将android应用程序的软件包名称与web应用程序链接。在互联网上阅读了几篇文章后,我生成了密钥库的SHA1指纹值 keytool-exportcert-alias android_密钥库-密钥库android_密钥库-列表-v | openssl sha1 如果你在谷歌开发者控制台中看到凭证屏幕,它会说你需要使用 keytool-exportcert-alias android_密钥库-keystore android_密钥库-list-v i、 e不要将输出通过管道传输到openssl sha1。不确定区别是什么,但两个命令给出的值不同
你将获得多个指纹,如MD5、SHA1、SHA256等。使用SHA1值。你能帮我解决这个错误吗@SmitPatel我不明白。你想要指纹代码吗?谢谢,但我已经解决了这个问题,我将在Gitub上推送该代码,但我使用的是WEB客户端ID。反正我没有使用安卓ID。问题在于se,我已经回答了。谢谢!!嗨!同样的问题,虽然还没有得到解决方案。在我的范围内,我正在使用谷歌开发者控制台中创建的Web客户端中的客户端ID,但它不起作用:(这起作用了!从使用Android应用程序客户端ID改为“Web客户端(由谷歌服务自动创建)”,它起作用了!