Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
com.google.android.gms.auth.GoogleAuthException:getToken(未知源)异常_Android_Google App Engine_Google Authentication - Fatal编程技术网

com.google.android.gms.auth.GoogleAuthException:getToken(未知源)异常

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

在我的Android应用程序中,我试图让google token在我的google app engine后端服务器上进行验证。但我总是有这样的例外:

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客户端(由谷歌服务自动创建)”,它起作用了!