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

时间:2015-03-16 22:17:43

标签: java google-admin-sdk

我正在使用服务帐户模型和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中的scoped(或非范围)userID和别名的所有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);

依旧......

任何想法都非常感激。

4 个答案:

答案 0 :(得分:1)

我认为值得补充一点,虽然我认为上述方法是正确的(使用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();

这也不起作用。

任何人都有工作代码的例子吗?

答案 1 :(得分:0)

我已使用以下内容插入别名:

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

我没有任何关于为什么你的方法不起作用或为什么我的方法有效的洞察力的方式,但你去了。

答案 2 :(得分:0)

S上。麦金莱的建议奏效了。

关键区别:

我一直在接听电话:

alias.setId(userId);

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

任何一个导致“参数与值不一致”错误。保留它并创建别名。

答案 3 :(得分:0)

我能够找到如下的customerId

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

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

Cxxxxxxxx是您的客户ID