Java 使用Google Admin SDK管理组和成员

Java 使用Google Admin SDK管理组和成员,java,google-admin-sdk,Java,Google Admin Sdk,我在使用谷歌API管理成员时遇到了一些问题。 这段代码实际上运行良好: Collection<String> scopes = new LinkedList<String>(); scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER_ALIAS); scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER); String adminMail = "admin

我在使用谷歌API管理成员时遇到了一些问题。 这段代码实际上运行良好:

    Collection<String> scopes = new LinkedList<String>();
    scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER_ALIAS);
    scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER);

    String adminMail = "admin.google@mydomain.com"; //This is a Super Admin User
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport).setJsonFactory(jsonFactory).setServiceAccountId(serviceMail).setServiceAccountScopes(scopes).setServiceAccountUser(adminMail).setServiceAccountPrivateKeyFromP12File(new File(privateKey)).build();

    Directory directory = new Directory.Builder(httpTransport, jsonFactory, credential).setApplicationName(applicationName).build();    
    //User Management   
    User myUser= directory.users().get("admin.google@mydomain.com").execute(); //IT WORKS !!

    //Group Management
    String userEmail = "myMail@mydomain.com";
    Member member = new Member();
    member.setEmail(userEmail);
    member.setRole("MEMBER");
    String groupID = "testGroup1@mydomain.com";
    directory.members().insert(groupID, member).execute(); //DOES NOT WORK
如果我尝试添加以下作用域:

Collection<String> scopes = new LinkedList<String>();
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER_ALIAS);
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER);
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_GROUP);
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_GROUP_MEMBER);
无法进行用户搜索和组成员插入。
您能帮助我吗?

我将jar从:google-oauth-client-1.17.0-rc更改为google-oauth-client-1.22.0,现在我在线程“main”com.google.api.client.auth.oauth2.TokenResponseException:401未授权中获得:异常。我试图添加所有作用域:
for(字符串s:DirectoryScopes.all()){//System.out.println(s);scopes.add(s);}
但没有任何效果。请检查这些作用域是否也添加到此错误中
403权限不足
是有关您使用的作用域的错误。请仅尝试使用
”https://www.googleapis.com/auth/admin.directory.group“
,因为它是访问所有组操作(包括组别名和成员)的全局范围。还要注意,要使用OAuth 2.0请求访问,您的应用程序需要范围信息,以及Google在您注册应用程序时提供的信息(例如客户端ID和客户端密码)。@KENdi我只尝试了范围
https://www.googleapis.com/auth/admin.directory.group
但什么也没有。我总是没有得到足够的许可。对于作用域DirectoryScopes.ADMIN\u DIRECTORY\u,用户仅对修改/搜索人员起作用,对组不起作用。范围
https://www.googleapis.com/auth/admin.directory.group
什么都不管用。
Collection<String> scopes = new LinkedList<String>();
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER_ALIAS);
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_USER);
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_GROUP);
scopes.add(DirectoryScopes.ADMIN_DIRECTORY_GROUP_MEMBER);
java.lang.NullPointerException
 com.google.api.client.repackaged.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
 com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127)
 com.google.api.client.json.jackson2.JacksonFactory.createJsonParser(JacksonFactory.java:96)
 com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:85)
 com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
 com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:88)
 com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287)
 com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307)
 com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:269)
 com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489)
 com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217)
 com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859)
 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
 main.java.MioMain.main(MioMain.java:77)