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); 

enter image description here

我沒有興趣在查看有關您的帳戶基本信息(https://www.googleapis.com/auth/userinfo.profile )。但是,如果我刪除userinfo.profile,則getUserInfo將始終返回空值。

有什麼辦法可以進一步縮小範圍?

回答

相關問題