Получение токена учетной записи Google от GoogleApiClient без разрешения GET_ACCOUNTS

Это традиционный способ получить токен от GoogleApiClient, используемый при входе в Google+:

String token = GoogleAuthUtil.getToken(apiClient.getContext(), getAccountNameFromGoogle(apiClient), SCOPE);

Однако метод GetAccountNameFromGoogle требует разрешения android.permission.GET_ACCOUNTS, и в Android M Developer Preview 3 это разрешение теперь помечено как опасное и сгруппировано в группу контактов. Это означает, что если кто-то хочет войти в мое приложение, ему нужно предоставить моему приложению полные разрешения на контакты, что немного излишне.

Есть ли способ добиться этого без разрешения GET_ACCOUNTS?

Один из потенциальных ответов, который я нашел, — получение имени учетной записи из AccountPicker, но это заставляет пользователя выбирать свою учетную запись дважды (один раз для аутентификации Google Plus и один раз для AccountPicker), что также не очень удобно.


person Matej Drobnič    schedule 27.08.2015    source источник
comment
Я попытался использовать кнопку входа в G+ здесь и успешно выполнил вход без использования разрешения android.permission.GET_ACCOUNTS. Я обнаружил, что он работает на Lollipop и имеет проблему с предварительным просмотром M 3 при запуске в Plus.PeopleApi.getCurrentPerson(mGoogleApiClient).getDisplayName();, он получает нулевой указатель. Я сообщил о проблеме здесь.   -  person bjiang    schedule 28.08.2015
comment
Да, я уже использую этот вход. Однако это позволяет вам использовать API только внутри игровых сервисов. Если вы хотите перенаправить токен на сервер или использовать его в других API вне игровых сервисов, вам необходимо получить токен.   -  person Matej Drobnič    schedule 28.08.2015


Ответы (1)


Итак, вот как я в конце концов решил это:

Я полностью отказался от GoogleApiClient и переключился на AccountPicker. Он не идеален, но я все еще могу использовать все функции GoogleApiClient, хотя и не так легко.

Руководство Google по этому вопросу: https://developers.google.com/android/guides/http-auth

person Matej Drobnič    schedule 31.08.2015
comment
Как вы получили информацию о пользователе, такую ​​как имя и другую информацию из Google Plus, без использования googleApiClient? - person Vihaan Verma; 30.06.2016
comment
@VihaanVerma После того, как я получил токен, я мог использовать Google+ REST API с этим токеном для получения всей информации. - person Matej Drobnič; 30.06.2016