Ответ 1
Два идентификатора клиента должны быть частью одного и того же проекта.
Для большего контекста этот пост следует этому.
Чтобы решить мою предыдущую проблему, я попытался выполнить решение, представленное здесь Тимом Брей: Проверка обратных вызовов из приложений для Android
Я объявил два проекта в Google APIs Console получить два идентификатора клиента
К сожалению, я столкнулся с исключением в 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)
В строке:
return GoogleAuthUtil.getToken(LoginActivity.this, account[0], "audience:server:client_id:XXXXXXXXXX.apps.googleusercontent.com");
Что я делаю неправильно?
Заранее спасибо
Два идентификатора клиента должны быть частью одного и того же проекта.
Через несколько часов я обнаружил, что в строке области видимости ("audience:server:client_id:..."
) вам нужно использовать идентификатор клиента веб-приложения, а не андроид.
Идентификатор клиента приложения Android не используется. Это здесь, чтобы связать имя пакета вашего приложения Android с вашим веб-приложением.
Нет необходимости делать больше. Пожалуйста, заново создайте свой идентификатор клиента в консоли Google и напишите эту строку в своем коде как строку области.
String SCOPE = "oauth2:https://www.googleapis.com/auth/userinfo.profile";
Я получил эту ошибку, когда я изменил имя своего пакета и забыл создать новый идентификатор клиента с помощью отладки SHA1 в консоли API Google.
Измените область, добавленную в GoogleApiCliente, на Plus.SCOPE_PLUS_LOGIN. Эта работа для меня.
googleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.build();