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



我正在使用服务帐户模型和Google的Admin SDK 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 中尝试了作用域(或未作用域)用户 ID 和别名以及请求中的用户 ID 的所有 8 种组合,结果相同。 通过所有 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),并且我缺少一些关键信息或犯了错误,但我也尝试通过更新 User 对象而不是别名来添加别名,如下所示:

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

那也没用。

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

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

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

对于为什么你的方法不起作用或为什么我的方法有效,我没有任何见解,但你去吧。

S. McKinley的建议奏效了。

主要区别:

我一直在包括电话:

alias.setId(userId);

alias.setId(scopedUserId);  //userId@domain

任何一个都会导致"参数与值不一致"错误。 省略它并创建别名。

我能够找到客户 ID,如下所示

转到 admin.google.com安全性 -> 设置单一登录 (SSO)您将看到如下网址:

https://accounts.google.com/o/saml2/idp?idpid=Cxxxxxxxx

Cxxxx

最新更新