使用App脚本和Admin SDK设置G Suite用户属性

时间:2018-11-13 22:41:23

标签: google-apps-script google-admin-sdk google-app-maker

我正在尝试通过App Maker内的App脚本设置用户的OU。 (user是带有电子邮件地址的变量)

function getUser(user) {
  var x = AdminDirectory.Users.update(
    {
      orgUnitPath: "/",
      userKey: user,
    });
  console.log("function ran");
}

此代码错误:

Exception: Invalid number of arguments provided. Expected 2-3 only at getUser (ServerScripts:107)
Invalid number of arguments provided. Expected 2-3 only
at getUser (ServerScripts:107)
at getUser (ClientHandoff:21:21)
at TestMoveOU.Panel1.Button1.onClick:1:1

我在这里做错了什么?查看the docs,您只需要提供要更改的属性即可。

1 个答案:

答案 0 :(得分:1)

Apps Script documentation 说:

  

有关此服务的详细信息,请参阅Admin SDK Directory API的参考文档。与Apps脚本中的所有高级服务一样,Admin SDK Directory服务使用与公共API相同的对象,方法和参数。

因此,我们需要咨询 documentation 以获得如何实现此目的的说明。

该方法至少需要两个参数:这意味着第一个参数是用户对象资源,第二个参数是用户的电子邮件地址:AdminDirectory.Users.update(resource, userKey)。因此,您需要这样做:

function getUser(user) {
    var userResource = {
        orgUnitPath: "/"
    };
    var updated = AdminDirectory.Users.update(userResource, user);
    console.log(updated.primaryEmail);
}

那么,在userResource对象中已经指定了用户电子邮件的情况下,为什么还要在该方法中指定用户电子邮件呢?好吧,userResource对象中的电子邮件地址将是新值,以防您要更改电子邮件地址。

P.S。也许您可能想将函数的名称更改为更匹配的名称。 updateUser()也许?我希望这会有所帮助!