从谷歌帐户获取用户名,头像

时间:2013-07-28 04:45:56

标签: android google-drive-api google-oauth google-account

我正在开发一个使用GoogleAccountCredential登录,上传和播放的模块将文件下载到GoogleDrive。

我希望在我的登录功能上显示用户名,谷歌帐户的姓氏和头像。

我试过

 GoogleAccountCredential.getAccountName()

但它只返回帐户名称。

关于OAuth 2.0,但不确定它能提供我需要的东西。

不知道从哪里获得这些信息,任何建议也对我有所帮助。如果有一些例子那就太棒了

3 个答案:

答案 0 :(得分:11)

ianhanniballake的答案有效,但还有更好的方法。 您无需登录Google+即可获取用户信息。

使用范围https://www.googleapis.com/auth/userinfo.profile

进行授权

https://www.googleapis.com/oauth2/v1/userinfo?alt=json

发出GET请求

你会得到

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

以下文档中还有特定于语言的工作代码:Retrieving and Using OAuth 2.0 Credentials

玩得开心!

答案 1 :(得分:4)

要获取此信息,您必须使用Google+ Sign In,这会在成功登录时为您提供PlusClient个对象。然后,您可以使用PlusClient.getCurrentPerson检索Person(具有getName()getImage()方法的人)和PlusClient.getAccountName()来获取accountName,您将使用与使用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();

答案 2 :(得分:2)

Google似乎已弃用JunYoung提到的有利于Google+登录的userinfo端点。他们将在2014年8月前停止支持userinfo端点。有关详细信息,请参阅以下链接:

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