2015-08-27 9 views
9

questo è il modo tradizionale per ottenere gettone da GoogleApiClient utilizzato in Google+ login:Ottenere conto token di Google dal GoogleApiClient senza permesso GET_ACCOUNTS

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

Tuttavia, GetAccountNameFromGoogle metodo richiede android.permission.GET_ACCOUNTS permesso e in Android M Developer Preview 3, questa autorizzazione è ora contrassegnato come pericoloso e raggruppato in un gruppo di contatti. Ciò significa che se qualcuno vuole accedere alla mia app ha bisogno di concedere alla mia app i permessi di contatto completi che è un po 'eccessivo.

C'è un modo per ottenere questo senza permesso GET_ACCOUNTS?

Una risposta potenziale che ho trovato è il recupero del nome account da AccountPicker, ma che le forze all'utente di scegliere il suo conto due volte (una volta per l'autenticazione di Google Plus e una volta per AccountPicker) che non è anche una soluzione molto amichevole.

+0

ho cercato di usare il pulsante G + signin [qui] (https://github.com/googlesamples/google-services/tree/master/android/signin) e signin successo senza usare il permesso 'android.permission.GET_ACCOUNTS'. Ho scoperto che funziona su Lollipop e presenta un problema su M preview 3 quando è in esecuzione su 'Plus.PeopleApi.getCurrentPerson (mGoogleApiClient) .getDisplayName();', otterrà un puntatore nullo. Ho segnalato il problema [qui] (https://github.com/googlesamples/google-services/issues/25). – bjiang

+0

Sì, sto già utilizzando quell'accesso. Tuttavia, ciò consente solo di utilizzare le API all'interno dei servizi di riproduzione. Se si desidera inoltrare il token al server o utilizzare su altre API al di fuori dei servizi di riproduzione, è necessario recuperare il token. –

risposta

0

Quindi questo è come alla fine ho risolto:

ho mollato GoogleApiClient completamente e passato a AccountPicker. Non è perfetto, ma posso ancora utilizzare tutte le funzionalità di GoogleApiClient, anche se non così facilmente.

guida di Google a questo: https://developers.google.com/android/guides/http-auth

+0

Come hai ottenuto le informazioni dell'utente come nome e altre informazioni da google plus senza utilizzare googleApiClient? –

+0

@VihaanVerma Dopo aver ottenuto token, potrei utilizzare Google+ REST API con quel token per recuperare tutte le informazioni. –

Problemi correlati