首页 文章

GoogleAuthException:Google Cloud Endpoints未知

提问于
浏览
-1

我已经为现有的GAE应用程序添加了API . API旨在通过具有Google Cloud Endpoints和OAuth2身份验证的Android应用程序使用 .

当我在没有身份验证的情况下访问API时,一切正常,但是通过身份验证会发生以下错通过启用OAuth2的API Explorer进行测试时,一切也正常 .

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 com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:255)
at com.appspot.p2ptransfers.MainActivity$2.doInBackground(MainActivity.java:248)
at com.appspot.p2ptransfers.MainActivity$2.doInBackground(MainActivity.java:234)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)

错误可以复制

try {
  _Credential = GoogleAccountCredential.usingAudience(MainActivity.this,"server:client_id:" + Utilities.WEB_CLIENT_ID);
  _Credential.setSelectedAccountName("valid_email@gmail.com");
  _Credential.getToken();
} 
catch (Exception e) {
  String s = Log.getStackTraceString(e);
  Log.e("Endpoints", s);
}

API定义为

WEB_CLIENT_ID = '<WEB_CLIENT_ID>'
ANDROID_CLIENT_ID = '<ANDROID_CLIENT_ID>'
ANDROID_AUDIENCE = WEB_CLIENT_ID

@endpoints.api(name='<api name>', version='v1',
           allowed_client_ids=[WEB_CLIENT_ID, ANDROID_CLIENT_ID, endpoints.API_EXPLORER_CLIENT_ID],
           audiences=[WEB_CLIENT_ID],
           scopes=[endpoints.EMAIL_SCOPE])

两个客户端ID都通过API控制台生成 .

有没有人有任何想法?

1 回答

  • 0

    我在玩Google OAuth2 Playground时发现了这个问题 . 我收到的错误是

    Error: invalid_client
    The OAuth client was deleted.
    

    然后我记得一个月前我错误地删除了这个项目,但后来我在几分钟后就删除了它 .

    当我创建一个新项目并生成新的客户端ID时,一切都开始工作了 .

相关问题