2016-05-23 4 views
0

Я создаю приложение для Android, в котором я предоставляю Gmail Login. Мне нужно получить имя пользователя. Я получаю помощь от учебника, предоставленного Google для интеграции Gmail (ссылка: https://developers.google.com/gmail/api/quickstart/android#step_5_setup_the_sample)Как мне получить имя пользователя, использующего Gmail API для Android?

У меня нет опыта использования REST API. Может ли кто-нибудь сказать мне, как мне получить имя?

ответ

1

По имени вы имеете в виду адрес электронной почты/имя пользователя или имя пользователя. если вы ищете электронную почту, вы можете получить ее, используя Users:getProfileClass.

GET https://www.googleapis.com/gmail/v1/users/userId/profile 

Пример ответа:

{ 
"emailAddress": string, 
"messagesTotal": integer, 
"threadsTotal": integer, 
"historyId": unsigned long 
} 

НО если вы пытаетесь получить имя пользователя, вы можете попробовать Google Sign-In for Android.

// Configure sign-in to request the user's ID, email address, and basic profile. ID and 
// basic profile are included in DEFAULT_SIGN_IN. 
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
.requestEmail() 
.build(); 

// Build a GoogleApiClient with access to GoogleSignIn.API and the options above. 
mGoogleApiClient = new GoogleApiClient.Builder(this) 
.enableAutoManage(this, this) 
.addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
.build(); 

Затем, когда кнопка входа нажата, начать вход в умысле:

Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
startActivityForResult(signInIntent, RC_SIGN_IN); 

Пользователь предлагается выбрать учетную запись Google для входа с. Если вы запросили области вне профиля, электронной почты и openid, пользователю также будет предложено предоставить доступ к запрошенным ресурсам.

Наконец, обрабатывать результат деятельности:

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 

// Result returned from launching the Intent from 
// GoogleSignInApi.getSignInIntent(...); 
if (requestCode == RC_SIGN_IN) { 
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
if (result.isSuccess()) { 
GoogleSignInAccount acct = result.getSignInAccount(); 
// Get account information 
mFullName = acct.getDisplayName(); 
mEmail = acct.getEmail(); 
} 
} 
} 

HTH

Смежные вопросы