2016-12-30 2 views
0

У меня возникает ошибка ниже при интеграции Google Calendar.GoogleCalendarAPI Незарегистрированный в консоли API

Пожалуйста, уточните мой нижеследующий код.

Заранее спасибо.

com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException 
                     at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:286) 
                     at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859) 
                     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410) 
                     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) 
                     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) 
                     at com.taskdemocal.AsyncLoadTasks.doInBackground(AsyncLoadTasks.java:38) 
                     at com.taskdemocal.CommonAsyncTask.doInBackground(CommonAsyncTask.java:55) 
                     at com.taskdemocal.CommonAsyncTask.doInBackground(CommonAsyncTask.java:33) 
                     at android.os.AsyncTask$2.call(AsyncTask.java:292) 
                     at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                     at java.lang.Thread.run(Thread.java:818) 
                    Caused by: com.google.android.gms.auth.GoogleAuthException: UNREGISTERED_ON_API_CONSOLE 

ответ

2

Ошибка, скорее всего, из-за отсутствия авторизации между вашим приложением Android и API конечных точек Cloud.

Поскольку я не имею полный доступ к вашим фактическим API аннотациями конечных точек и Android кода, я хотел бы предложить вам взглянуть на следующие моменты тесно:

Убедитесь, что вы аннотированный ваш Облако Endpoints API правильно с клиентов и аудиторий. Значение Android Audience совпадает с значением идентификатора веб-клиента. Убедитесь, что вы развернули обновленный API и обновили источники API конечных точек для включения в приложение Android. Наконец, в исходном коде Androids вы должны создать экземпляр GoogleAccountCredential с помощью GoogleAccountCredential.usingAudience (...), а затем использовать этот объект учетных данных при вызове API конечной точки. Напр. построитель конечных точек принимает HTTP-транспорт, фабрику GSON и учетные данные. Не оставляйте последний параметр (т. Е. Учетные данные) пустым.

Я также получал аналогичное исключение GoogleAuthIOException:

com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException 
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:286) 
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) 
at com.example.MainActivity$ListPartiesTask.doInBackground(MainActivity.java:188) 
at com.example.MainActivity$ListPartiesTask.doInBackground(MainActivity.java:178) 
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) 
Caused by: com.google.android.gms.auth.GoogleAuthException: Unknown 
at com.google.android.gms.auth.GoogleAuthUtil.zzb(Unknown Source) 
at com.google.android.gms.auth.GoogleAuthUtil.zza(Unknown Source) 
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source) 
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.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:279) 
... 12 more 

Оказывается, мне нужно, чтобы создать идентификатор клиента с sha1 отпечатком отладочной версии приложения (я уже создал один для подписанной версии приложения, но если вы этого не сделали, вам тоже нужно будет это сделать).

Вы можете получить отпечатки с помощью следующей команды (на Mac, адрес debug.keystore может отличаться от других систем):

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

Если вам нужно, чтобы получить отпечатки пальцев для ключа релиза вы может сделать это:

keytool -list -v -keystore /PATH/TO/YOUR/release-key.jks -alias RELEASE_KEY_ALIAS 
Смежные вопросы