如何使用Google Admin SDK Java API添加用户别名

如何使用Google Admin SDK Java API添加用户别名,java,google-admin-sdk,Java,Google Admin Sdk,我正在使用服务帐户模型和Google的AdminSDK Java API来检索和修改用户 目标是为现有用户添加别名 Alias newAlias = new Alias(); newAlias.setId(userID); newAlias.setAlias(alias); Directory.Users.Aliases.Insert request = directory.users().aliases().insert(userID, newAlias); request.execute(

我正在使用服务帐户模型和Google的AdminSDK Java API来检索和修改用户

目标是为现有用户添加别名

Alias newAlias = new Alias();
newAlias.setId(userID);
newAlias.setAlias(alias);

Directory.Users.Aliases.Insert request = directory.users().aliases().insert(userID, newAlias);
request.execute();
execute()在100%的时间内失败,并显示错误消息:

“通过参数设置的值与请求中设置的值不一致”

但是,当然没有确定问题参数或值,也没有提供建议

我在newAlias中尝试了作用域(或未作用域)userID和alias的所有8种组合,并在请求中尝试了userID,得到了相同的结果。我指的是所有8种组合:

newAlias.setId(userID);
newAlias.setAlias(alias);
insert(userID, newAlias);

newAlias.setId(userID@domain.com);
newAlias.setAlias(alias@domain.com);
insert(userID@domain.com, newAlias);
等等


非常感谢您的任何想法。

我认为值得补充的是,虽然我相信上述方法是正确的(使用Directory.Aliases.Insert),而且我丢失了一些关键信息或犯了一个错误,但我也尝试通过更新用户对象而不是别名来添加别名,如下所示:

List<String> aliases = new ArrayList<String>();
aliases.add(scopedAlias);  //userid@domain.com
User user = new User();
user = retrieveUser(uid);  //Gets current record from Google
user.setAliases(aliases);

Directory.Users.Update request
    = directory.users().update(uid, user);
request.execute();
List alias=new ArrayList();
别名。添加(scopedAlias)//userid@domain.com
用户=新用户();
用户=检索用户(uid)//从Google获取当前记录
user.setAlias(别名);
Directory.Users.Update请求
=目录.users().update(uid,user);
request.execute();
这也不管用


有人有工作代码的示例吗?

我使用以下方法插入了别名:

Alias alias = new Alias();
alias.setAlias(aliasString);
directory.users().aliases().insert(userId, alias).execute();

关于你的方法为什么不起作用或者我的方法为什么起作用,我没有任何见解,但你看。

S.麦金利的建议起了作用

关键区别在于:

我一直在打电话:

alias.setId(userId);


任何一个都会导致“参数与值不一致”错误。省去它,就会创建别名。

我能够找到customerId,如下所示

请访问admin.google.com 安全->设置单一登录(SSO) 您将看到如下URL:

List<String> aliases = new ArrayList<String>();
aliases.add(scopedAlias);  //userid@domain.com
User user = new User();
user = retrieveUser(uid);  //Gets current record from Google
user.setAliases(aliases);

Directory.Users.Update request
    = directory.users().update(uid, user);
request.execute();

Cxxxxxxxx是您的客户ID