Подтвердить что ты не робот

GoogleAuthException: Неизвестно (android)

У меня есть android, проблема авторизации google (похоже на .GoogleAuthException: Неизвестно при выполнении единого входа в Google. - нет ответов):

09-29 00:04:38.328: W/System.err(15623): com.google.android.gms.auth.GoogleAuthException: Unknown
09-29 00:04:38.328: W/System.err(15623):    at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)

Он воспроизводится, когда я выполняю следующий код:

String scopesString = Scopes.PLUS_LOGIN + " " + Scopes.PLUS_PROFILE;
String scopes = "oauth2:server:client_id:" + Consts.GOOGLE_PLUS_SERVER_CLIENT_ID + ":api_scope:" + scopesString;
OR
String scopes = "audience:server:client_id:" + Consts.GOOGLE_PLUS_SERVER_CLIENT_ID;
Bundle appActivities = new Bundle();
appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES, "http://schemas.google.com/AddActivity http://schemas.google.com/BuyActivity");
GoogleAuthUtil.getToken(activity,  accountName, scopes, appActivities);

Вот несколько примечаний:

  • Я могу получить токен доступа с помощью GoogleAuthUtil.getToken(activity, accountName, oauth2: "+ scopesString)
  • activity!= null, client_id = 123456789.apps.googleusercontent.com, accountName действительный адрес электронной почты (выбранный с помощью учетной записи)
  • accountName в http://plus.google.com/u/0/apps имеет запись о моем проекте: < Название проектa > ------- приложение и покупка деятельность -------- Ваши круги
  • У меня android.permission.GET_ACCOUNTS
  • То же исключение с appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES, "")
  • То же исключение с GoogleAuthUtil.getToken(activity, accountName, scopes)

решаемые

  • У вас должно быть два идентификатора клиента: установленное приложение (Android) и сервисное. Вы должны использовать Сервис один здесь.
  • Затем вы получите UserRecoverableAuthException: NeedPermission. Вы должны обработать исключение

то есть. например:

} catch (UserRecoverableAuthException e) {
activity.startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
}
4b9b3361

Ответ 1

В консоли разработчика Google в разделе API и Auth нажмите "Учетные данные".

У вас, вероятно, уже есть "Идентификатор клиента для приложения для Android" и использует этот идентификатор клиента. Вам нужно создать новый идентификатор клиента и выбрать "Учетная запись службы" для вашего бэкэнд.

Вы должны использовать этот идентификатор клиента, а не Android.

Ответ 2

Я получал Неизвестную ошибку, потому что я зарегистрировал свой SHA1-хэш, используя мое хранилище ключей. Регистрация нового приложения с использованием хранилища отладки исправила мою проблему.

Ответ 3

Измените область, добавленную в GoogleApiCliente, на Plus.SCOPE_PLUS_LOGIN. Эта работа для меня.

googleApiClient = new GoogleApiClient.Builder(this)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .addApi(Plus.API)
        .addScope(Plus.SCOPE_PLUS_LOGIN)
        .build();

Ответ 4

Для меня это произошло, когда я изменил "applicationId" в файле gradle. Убедитесь, что у вас есть тот же файл приложения или packagename в консоли разработчика, когда вы включили API.