如何使用JAVA库在Google API上获取用户个人资料?

时间:2014-03-19 19:53:04

标签: java google-app-engine google-api google-api-java-client userinfo

我有 Google API 的Java ClientRequest,它返回一个包含access_token基础配置文件的json。 URL为:
https://www.googleapis.com/oauth2/v1/userinfo?access_token=ya29.1.AADtN_VALuuUTBm8ENfNTz8s ...

响应是:

{
    "id": "111223344556677889900",
    "email": "myemail@gmail.com",
    "verified_email": true,
    "name": "My Name",
    "given_name": "My",
    "family_name": "Name",
    "link": "plus.google.com/111223344556677889900",
    "picture": "photo.jpg",
    "gender": "male",
    "locale": "en"
}

有些观点:

1 我想使用java库来避免挂载http请求,保留google服务器网址和其他小问题。
2 我不需要授权的步骤,因为此时我的方法会收到访问令牌(所有的oauth步骤都在之前完成)。
3 在这种方法中,我们没有(并且到目前为止并不需要)客户端ID和密码。
4 我不需要Google+范围。其实我宁愿不去那里。到目前为止,只找到了使用Plus库的示例。

总之,我需要google api java库中的某些内容与现在使用的http请求完全相同。

非常感谢您提前!

1 个答案:

答案 0 :(得分:23)

我希望这会有所帮助

GoogleCredential credential = new GoogleCredential().setAccessToken(accessToken);   
 Oauth2 oauth2 = new Oauth2.Builder(new NetHttpTransport(), new JacksonFactory(), credential).setApplicationName(
          "Oauth2").build();
 Userinfoplus userinfo = oauth2.userinfo().get().execute();
 userinfo.toPrettyString();