使用ClientID获取访问令牌时的GoogleAuthException

Bar*_*les 10 authentication android google-api single-sign-on google-oauth

更多情况下,这个帖子下面这一个.

为了解决我之前的问题,我尝试按照Tim Bray提供的解决方案:验证Android应用程序的后端调用

我在Google API控制台中声明了两个项目,以获取两个客户端ID

  • 第一个是"Web应用程序",其中"localhost"作为主机名(这有关系吗?)
    • 客户ID:XXXXXXXXXX.apps.googleusercontent.com
  • 第二个是Android应用程序,其中包含在AndroidManifest.xml和SHA1指纹中指定的包名称(尝试使用debug.keystore和[my] .keystore)
    • 客户ID:YYYYYYYYYY.apps.googleusercontent.com

不幸的是我在Android方面面临例外:

com.google.android.gms.auth.GoogleAuthException: Unknown
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
at fr.barles.android.activity.LoginActivity$1.doInBackground(LoginActivity.java:66)
at fr.barles.android.activity.LoginActivity$1.doInBackground(LoginActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
at java.lang.Thread.run(Thread.java:1102)
Run Code Online (Sandbox Code Playgroud)

在线上:

return GoogleAuthUtil.getToken(LoginActivity.this, account[0], "audience:server:client_id:XXXXXXXXXX.apps.googleusercontent.com");
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

提前致谢

Dal*_*mas 14

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

Android应用程序的客户端ID未使用.这里只是将您的Android应用程序的包名称与您的Web应用程序相关联.

  • 经过几个小时的搜索,我发现了你的帖子! (3认同)

vla*_*tko 4

这两个客户端 ID 应该属于同一项目。