0
目前,我只想根據用戶的憑據瞭解用戶的電子郵件。如何在不請求示波器的情況下訪問用戶的電子郵件信息userinfo.profile
public static Userinfoplus getUserInfo(Credential credentials)
{
Oauth2 userInfoService =
new Oauth2.Builder(httpTransport, JSON_FACTORY, credentials).setApplicationName("JStock").build();
Userinfoplus userInfo = null;
try {
userInfo = userInfoService.userinfo().get().execute();
} catch (IOException e) {
System.err.println("An error occurred: " + e);
}
if (userInfo != null && userInfo.getId() != null) {
return userInfo;
} else {
return null;
}
}
System.out.println(getUserInfo(credential).getEmail());
然而,爲了使上面的代碼工作,我需要包括https://www.googleapis.com/auth/userinfo.profile
太
Set<String> scopes = new HashSet<String>();
scopes.add("https://www.googleapis.com/auth/userinfo.email");
scopes.add("https://www.googleapis.com/auth/userinfo.profile");
scopes.add(DriveScopes.DRIVE_APPDATA);
我沒有興趣在查看有關您的帳戶基本信息(https://www.googleapis.com/auth/userinfo.profile )。但是,如果我刪除userinfo.profile
,則getUserInfo
將始終返回空值。
有什麼辦法可以進一步縮小範圍?