Get user name, avatar from google account

江枫思渺然 提交于 2019-12-30 05:02:41

问题


I'm developing an module that use GoogleAccountCredential to login, upload & download a file to GoogleDrive.

I want to get user first, last name and avatar of google account for display on my login feature.

I've try

 GoogleAccountCredential.getAccountName()

But It return only account name.

And see about OAuth 2.0 but not sure It can provide which I needed.

Don't know where to get those infomation, any suggestion also help me. It's awsome if have some examples


回答1:


ianhanniballake's answer works, but there is a better way to do it. You don't need Google+ sign in to get user info.

Authorize with scope https://www.googleapis.com/auth/userinfo.profile

Make GET request to https://www.googleapis.com/oauth2/v1/userinfo?alt=json

You will get

{
 "id": "xx",
 "name": "xx",
 "given_name": "xx",
 "family_name": "xx",
 "link": "xx",
 "picture": "xx",
 "gender": "xx",
 "locale": "xx"
}

There are also language specific working codes in the following documentation: Retrieving and Using OAuth 2.0 Credentials.

Have fun!




回答2:


To get this information, you must use Google+ Sign In, which gives you a PlusClient object on successful login. You can then use PlusClient.getCurrentPerson to retrieve a Person (who has a getName() and getImage() method) and PlusClient.getAccountName() to get the accountName, which you would use in the same way as if you had used GoogleAccountCredential:

String accessToken = GoogleAuthUtil.getToken(context, accountName, OAUTH2_SCOPE);
final GoogleCredential credential = new GoogleCredential();
credential.setAccessToken(accessToken);
Drive driveConnection = new Drive.Builder(AndroidHttp.newCompatibleTransport(), 
    new GsonFactory(), credential).setApplicationName(APP_NAME).build();



回答3:


Looks like Google has deprecated the userinfo endpoint that JunYoung mentioned in favor of the Google+ Sign-in. They will stop supporting the userinfo endpoint by August, 2014. See the link below for details:

https://developers.google.com/+/api/auth-migration



来源:https://stackoverflow.com/questions/17905066/get-user-name-avatar-from-google-account

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!