Get user name, avatar from google account

时间秒杀一切 提交于 2019-11-30 14:57:18

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!

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();

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

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