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

aug*_*sta 5 java google-app-engine google-api userinfo google-api-java-client

我有一个Java ClientRequest到Google API,它返回一个json,其中包含一个基于access_token的配置文件.该网址为:
https://www.googleapis.com/oauth2/v1/userinfoaccess_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服务器url和其他一些小问题.
2我不需要授权的步骤,因为此时我的方法接收访问令牌(所有的oauth步骤都在之前完成).
3在这种方法中,我们没有(并且到目前为止还不需要)客户端ID和秘密.
4我不需要Google+范围.其实我更喜欢不去那里.到目前为止,只找到了使用Plus库的示例.

总而言之,我需要google api java库中的某些内容完全等同于现在使用的http请求.

非常感谢你提前!

小智 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();
Run Code Online (Sandbox Code Playgroud)

  • 只是补充...我必须添加以下依赖:`<dependency> <groupId> com.google.apis </ groupId> <artifactId> google-api-services-oauth2 </ artifactId> <version> v2-rev65- 1.17.0-rc </ version> </ dependency>` (4认同)