2015-08-27 25 views
9

Jest to tradycyjny sposób, aby otrzymać token z GoogleApiClient stosowane w Google+ logowanie:Uzyskanie tokena do konta Google z GoogleApiClient bez zgody GET_ACCOUNTS

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

Jednak GetAccountNameFromGoogle metoda wymaga android.permission.GET_ACCOUNTS pozwolenie i Android M Developer Preview 3, to uprawnienie jest teraz oznaczony jako niebezpieczny i pogrupowany w grupę kontaktów. Oznacza to, że jeśli ktoś chce się zalogować do mojej aplikacji, musi przyznać mojej aplikacji pełne uprawnienia do kontaktów, co jest nieco przesadzone.

Czy istnieje sposób na osiągnięcie tego celu bez zgody na GET_ACCOUNTS?

Jedną z potencjalnych odpowiedzi, które znalazłem, jest uzyskanie nazwy konta od AccountPicker, ale to zmusza użytkownika do wybrania jego konta dwa razy (raz dla uwierzytelniania Google Plus i raz dla konta), co również nie jest zbyt przyjaznym rozwiązaniem.

+0

Próbowałem użyć przycisku G + internetową logowania [tutaj] (https://github.com/googlesamples/google-services/tree/master/android/signin) i pomyślne logować bez używania uprawnień "android.permission.GET_ACCOUNTS". Zauważyłem, że działa on na Lollipop i ma problem z M podglądem 3 podczas uruchamiania do 'Plus.PeopleApi.getCurrentPerson (mGoogleApiClient) .getDisplayName();', otrzyma wskaźnik zerowy. Zgłosiłem problem [tutaj] (https://github.com/googlesamples/google-services/issues/25). – bjiang

+0

Tak, używam już tego logowania. Pozwala to jednak tylko korzystać z interfejsów API w usługach rozrywkowych. Jeśli chcesz przekazać token na serwer lub użyć go na innych interfejsach poza usługami odtwarzania, musisz pobrać token. –

Odpowiedz

0

Tak to jest, jak się ostatecznie rozwiązać go:

I porzuciła GoogleApiClient i całkowicie włączone do AccountPicker. Nie jest doskonały, ale nadal mogę używać wszystkich funkcji GoogleApiClient, choć nie jest to łatwe.

przypomnienie tego Google'a: https://developers.google.com/android/guides/http-auth

+0

W jaki sposób uzyskałeś informacje o użytkowniku, takie jak imię i inne informacje z Google Plus bez używania googleApiClient? –

+0

@VihaanVerma Po otrzymaniu tokena mogę użyć aplikacji Google+ REST API z tym tokenem, aby pobrać wszystkie informacje. –

Powiązane problemy