solo per aggiungere alla risposta di Hardy sopra, che mi ha guidato nella giusta direzione.
Ho finito per utilizzare due chiamate a GoogleApiClient perché non riuscivo a ottenere ciò che Hardy ha sopra per funzionare.
La mia prima chiamata è al GoogleSignInApi
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestProfile()
.requestEmail()
.requestIdToken(MY_GOOGLE_SERVER_CLIENT_ID)
.build();
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, ThinQStepsConstants.REQUEST_CODE_GOOGLE_SIGN_IN);
Ciò allora dammi la prima parte attraverso l'onActivityResult, lo stesso di Hardy. Tuttavia allora io uso la chiamata al GoogleApiClient.Builder nuovo
mGoogleApiClientPlus = new GoogleApiClient.Builder(getActivity())
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_PROFILE)
.build();
mGoogleApiClientPlus.connect();
Ora posso accedere alla Plus.PeopleApi tramite il callback onConnected
@Override
public void onConnected(Bundle connectionHint) {
Log.i(TAG, "onConnected");
Plus.PeopleApi.load(mGoogleApiClientPlus, mGoogleId).setResultCallback(new ResultCallback<People.LoadPeopleResult>() {
@Override
public void onResult(@NonNull People.LoadPeopleResult loadPeopleResult) {
Person currentPerson = loadPeopleResult.getPersonBuffer().get(0);
}
});
}
Con disconnette appropriate e revoca.
È possibile notare che il mio codice utilizza gli stessi callback, che devo riordinare, ma il principal è lì.
Hai provato a utilizzare [GoogleSignInResult] (https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInResult)? – gerardnimo
L'unico oggetto che contiene dati sull'utente in GoogleSignInResult è GoogleSignInAccount che non contiene i dati di cui ho bisogno. –
Ho trovato questo vecchio [thread] (http://stackoverflow.com/questions/2108537/which-google-api-to-use-for-getting-users-first-name-last-name-picture-etc). Spero che questo ti possa aiutare. – gerardnimo