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

Shi*_*hah 15 google-app-engine android google-authentication

在我的Android应用程序中,我试图在我的谷歌应用引擎后端服务器上验证谷歌令牌.但我总是得到这个例外:

com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception
Run Code Online (Sandbox Code Playgroud)

我的代码:

    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);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了Stackoverflow中提出的每个解决方案.

Dal*_*mas 16

几个小时后,我发现在你的作用域string("audience:server:client_id:...")中你必须使用Web应用程序的客户端ID,而不是android.

Android应用程序的客户端ID未使用.它只是在这里链接您的Android应用程序的包名称与您的Web应用程序.

  • 但我正在使用WEB CLIENT ID ..我还没有使用Android ID ..问题是我已经回答的其他问题.谢谢!! (2认同)

Shi*_*hah 15

经过2天的研究,我发现当你在谷歌云控制台注册你的Android应用程序 - >你的项目 - > API和auth时,它会要求你指纹以生成ClientID,不知何故我的指纹错了(我不小心加了~$在这个cmd之前keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1)由于这个原因,它给了我错误的指纹,并且是以下原因:

com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception.
Run Code Online (Sandbox Code Playgroud)