2015-08-27 7 views
9

Dies ist die traditionelle Art und Weise Token zu erhalten, aus GoogleApiClient in Google+ Anmeldung verwendet:Beziehen Google-Konto-Token von GoogleApiClient ohne GET_ACCOUNTS Erlaubnis

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

jedoch GetAccountNameFromGoogle Methode erfordert android.permission.GET_ACCOUNTS Erlaubnis und in Android M Developer Preview 3, diese Berechtigung ist jetzt als gefährlich gekennzeichnet und in Kontaktgruppe gruppiert. Das heißt, wenn jemand sich in meine App einloggen möchte, muss er meiner App volle Zugriffsrechte gewähren, was ein wenig übertrieben ist.

Gibt es eine Möglichkeit, dies ohne GET_ACCOUNTS Erlaubnis zu erreichen?

Eine mögliche Antwort, die ich fand ist Kontoname von AccountPicker erhalten, aber das zwingt Benutzer, sein Konto es zweimal auszuwählen (einmal für Google Plus-Authentifizierung und einmal für AccountPicker), die auch nicht sehr freundliche Lösung ist.

+0

Ich versuchte, die G + signin Taste [hier] (https://github.com/googlesamples/google-services/tree/master/android/signin) und erfolgreiche signin zu verwenden ohne die 'android.permission.GET_ACCOUNTS' Erlaubnis zu benutzen. Ich habe festgestellt, dass es auf Lollipop funktioniert und ein Problem mit M preview 3 beim Ausführen von 'Plus.PeopleApi.getCurrentPerson (mGoogleApiClient) .getDisplayName();', es wird Nullzeiger erhalten. Ich habe das Problem [hier] gemeldet (https://github.com/googlesamples/google-services/issues/25). – bjiang

+0

Ja, ich verwende dieses Zeichen bereits. Allerdings können Sie damit nur APIs in den Wiedergabediensten verwenden. Wenn Sie Token an den Server weiterleiten oder auf anderen APIs außerhalb der Abspieldienste verwenden möchten, müssen Sie das Token abrufen. –

Antwort

0

Also das ist, wie ich es schließlich gelöst:

ditched ich GoogleApiClient vollständig und wechselte zu AccountPicker. Es ist nicht perfekt, aber ich kann immer noch alle Funktionen von GoogleApiClient verwenden, wenn auch nicht so mühelos.

Google-Guide für diese: https://developers.google.com/android/guides/http-auth

+0

Wie haben Sie Nutzerinformationen wie Name und andere Informationen von Google Plus erhalten, ohne googleApiClient zu verwenden? –

+0

@VihaanVerma Nachdem ich Token erhalten habe, konnte ich Google+ REST API mit diesem Token verwenden, um alle Informationen abzurufen. –

Verwandte Themen