signin - login google android studio




Obter detalhes da pessoa no novo login do Google no Play Services 8.3 (2)

O Plus.API foi descontinuado. Veja as notas de descontinuação abaixo: https://developers.google.com/+/mobile/android/api-deprecation

Se você precisar de informações de perfil que não sejam o primeiro / último / nome para exibição, o email e o URL da imagem do perfil (que já é fornecido pela API de login ), use a nova API de pessoas .

No Android, você pode fazer isso:

// Add dependencies
compile 'com.google.api-client:google-api-client:1.22.0'
compile 'com.google.api-client:google-api-client-android:1.22.0'
compile 'com.google.apis:google-api-services-people:v1-rev4-1.22.0'

Em seguida, escreva o código de entrada.

// Make sure your GoogleSignInOptions request profile & email
GoogleSignInOptions gso =
        new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
// Follow official doc to sign-in.
// https://developers.google.com/identity/sign-in/android/sign-in

Use a People Api para recuperar informações detalhadas da pessoa.

/** Global instance of the HTTP transport. */
private static HttpTransport HTTP_TRANSPORT = AndroidHttp.newCompatibleTransport();
/** Global instance of the JSON factory. */
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();

// On worker thread
GoogleAccountCredential credential =
         GoogleAccountCredential.usingOAuth2(MainActivity.this, Scopes.PROFILE);
credential.setSelectedAccount(
        new Account(googleSignInAccount.getEmail(), "com.google"));
People service = new People.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
                .setApplicationName(APPLICATION_NAME /* whatever you like */) 
                .build();
// All the person details
Person meProfile = service.people().get("people/me").execute();
// e.g. Gender
List<Gender> genders = meProfile.getGenders();
String gender = null;
if (genders != null && genders.size() > 0) {
    gender = genders.get(0).getValue();
}

Estou tentando obter o perfil de um usuário usando a nova API de login do Google introduzida no play services 8.3. Além de Nome para exibição, E-mail e ID, também preciso do sexo do usuário.

Plus.PeopleApi.getCurrentPerson() 

foi descontinuado de acordo com o play services 8.3 e também retorna nulo para mim, embora

mGoogleApiClient.hasConnectedApi(Plus.API) 

retorna verdadeiro.

GoogleSignInAccount.getGrantedScopes 

retorna

https://www.googleapis.com/auth/plus.me
https://www.googleapis.com/auth/plus.login
profile
email
openid

O Console do desenvolvedor do Google não mostra nenhum resultado na API do Google+. Coloquei o arquivo google-services.json correto em app / pasta do aplicativo. Até gerei a impressão digital SHA1 programaticamente para verificar se estava usando o keystore correto.

Como posso obter os dados do perfil do google + da pessoa (sexo, sobrenome, nome próprio etc.) usando a nova API de login?


Para obter informações de perfil, o Google introduziu a maneira mais fácil até agora, eu acho!

GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(getActivity());
if (acct != null) {
  String personName = acct.getDisplayName();
  String personGivenName = acct.getGivenName();
  String personFamilyName = acct.getFamilyName();
  String personEmail = acct.getEmail();
  String personId = acct.getId();
  Uri personPhoto = acct.getPhotoUrl();
}




google-plus-signin