我正在尝试将用户(新创建的)添加到我的Google Apps域中的特定组织单位,但我似乎无法在此找到任何文档或示例。这甚至可能吗?也许通过使用普通的REST调用?
我的代码到目前为止创建用户:
var user = UserManager.createUser(userName, firstName, lastName, "welcome").setChangePasswordAtNextLogin(true);
现在我想将用户附加到特定的组织单位,并使其成为某些组的成员(但这是我正在深入研究的另一个问题)。
非常感谢任何帮助!
此致
基斯。
答案 0 :(得分:3)
UserManager服务不支持组织单位,但您可以手动构建请求。
以下Apps脚本代码将用户添加到OU。参数是customerId,要添加到组织单位的用户的电子邮件地址以及组织单位路径:
function addUserToOU(customerId, email, ou) {
var oauthConfig = UrlFetchApp.addOAuthService("google");
var scope = "https://apps-apis.google.com/a/feeds/policies/";
oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oauthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oauthConfig.setConsumerKey("anonymous");
oauthConfig.setConsumerSecret("anonymous");
var body = "<?xml version=\"1.0\" encoding=\"utf-8\"?><atom:entry xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:apps=\"http://schemas.google.com/apps/2006\"><apps:property name=\"orgUnitPath\" value=\"" + ou + "\" /></atom:entry>";
var requestData = {
"method": "put",
"contentType": "application/atom+xml",
"oAuthServiceName": "google",
"oAuthUseToken": "always",
"payload": body
};
var url = "https://apps-apis.google.com/a/feeds/orguser/2.0/" + customerId + "/" + email;
var result = UrlFetchApp.fetch(url, requestData);
Logger.log(result.getContentText());
}
答案 1 :(得分:1)
我认为现在这项任务非常简单: 这个sinple代码应该有效:
var emailAddress = 'myuser@mydomain.com';
var user = AdminDirectory.Users.get(emailAddress);
var orgunittomove='myorgunit' //you can set the whole path;
user.orgUnitPath = orgunittomove;
AdminDirectory.Users.update(user, emailAddress);
答案 2 :(得分:0)
以与上一个答案相同的方式,可以在创建用户时在用户对象上添加组织单位。在用户对象中,您必须设置orgUnitPath属性。
var user = {
primaryEmail: "aperetz@austriajohn.edu",
orgUnitPath:"/Students",
name: {
givenName: "Albert",
familyName: "Peretz"
},
password: "XWYlkf"
};
userGsuite = AdminDirectory.Users.insert(user);