【问题标题】:Setting G Suite user properties with App Script and the Admin SDK使用 App Script 和 Admin SDK 设置 G Suite 用户属性
【发布时间】:2018-11-13 22:41:23
【问题描述】:

我正在尝试通过应用制作工具中的应用脚本设置用户的 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,您只需要提供您要更改的属性即可。

【问题讨论】:

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


    【解决方案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 对象中的电子邮件地址将是新值,以防您想更改电子邮件地址。

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

    【讨论】:

    • 这很有效,您的解释很有帮助 - 谢谢!
    • 对于未来的读者:您需要将 orgUnitPath = "/" 更改为 orgUnitPath: "/"
    • @IanHyzy 我看到了……对不起。我刚刚编辑了答案以匹配上述评论。
    猜你喜欢
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2018-07-04
    • 2022-06-15
    • 2023-03-04
    相关资源
    最近更新 更多