哪个Google API用于获取用户的名字,姓氏,图片等?

Pra*_*nav 16 oauth google-api

我有谷歌正式工作的oauth授权,我从联系人api获取数据.现在,我想以编程方式获取gmail用户的名字,姓氏和图片.哪个google api可以用来获取这些数据?

小智 16

联系人API可能有效,但您必须请求用户授权才能访问所有联系人.如果我是一个用户,这会让我担心授予权限(因为这实际上允许你向我的所有联系人发送垃圾邮件......)

我发现这里的响应很有用,只询问"基本配置文件信息":

通过Google API获取用户信息

我已经成功使用了这种方法,并且可以确认它返回以下Json对象:

{
  "id": "..."
  "email": "...",
  "verified_email": true,
  "name": "....",
  "given_name": "...",
  "family_name": "...",
  "link": "...",
  "picture": "...",
  "gender": "male",
  "locale": "en"
}
Run Code Online (Sandbox Code Playgroud)


小智 5

使用此代码获取Google用户的名字和姓氏

    final HttpTransport transport = new NetHttpTransport();
    final JsonFactory jsonFactory = new JacksonFactory();
    GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
            .setAudience(Arrays.asList(clientId))
            .setIssuer("https://accounts.google.com")
            .build();

    GoogleIdToken idToken = null;
    try {
        idToken = verifier.verify(googleAuthenticationPostResponse.getId_token());
    } catch (GeneralSecurityException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    GoogleIdToken.Payload payload = null;
    if (idToken != null) {
        payload = idToken.getPayload();
    }
    String firstName = payload.get("given_name").toString();
    String lastName = payload.get("family_name").toString();
Run Code Online (Sandbox Code Playgroud)


Pra*_*nav 0

我在联系人 API 论坛中查找时找到了答案。当您获得结果提要时,只需在 Java 中执行以下操作 -

String Name = resultFeed.getAuthors().get(0).getName();

String emailId = resultFeed.getId();
Run Code Online (Sandbox Code Playgroud)

我仍在寻找一种获取用户个人资料图片的方法。

  • Java 与 Google API 有什么关系? (4认同)