0

我正在尝试将用户(新创建的)添加到我的 Google Apps 域中的特定组织单位,但我似乎找不到任何文档或示例。这甚至可能吗?也许通过使用普通的 REST 调用?

到目前为止,我创建用户的代码:

var user = UserManager.createUser(userName, firstName, lastName, "welcome").setChangePasswordAtNextLogin(true);

现在我想将用户附加到特定的组织单位,并使其成为某些组的成员(但这是我正在研究的另一个问题)。

任何帮助将不胜感激!

问候,

基斯。

4

3 回答 3

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());
}
于 2012-06-05T22:48:58.030 回答
1

我认为现在这项任务很容易:这个简单的代码应该可以工作:

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);
于 2015-08-30T09:45:58.683 回答
0

与上一个答案一样,您可以在创建用户时在用户对象上添加组织单位。在用户对象中,您必须设置 orgUnitPath 属性。

var user = {
    primaryEmail: "aperetz@austriajohn.edu",
    orgUnitPath:"/Students", 
        name: {
        givenName: "Albert",
        familyName: "Peretz"
    },
    password: "XWYlkf"
};
userGsuite = AdminDirectory.Users.insert(user);
于 2018-09-09T16:44:45.273 回答