【问题标题】:Retrieve custom attribute from user profile in Google API Scripts- Google Admin Directory从 Google API Scripts-Google Admin Directory 中的用户配置文件中检索自定义属性
【发布时间】:2018-02-21 18:21:43
【问题描述】:

这是关于 G Suite 用户的。以下内容使用 Google Admin SDK 在 Google Admin Directory 中工作。它检索电子邮件地址和用户的全名。

var myemail = Session.getActiveUser().getEmail();

  var mycontact = AdminDirectory.Users.get(myemail);
  var myname = mycontact.name.fullName;

用户配置文件中有一个名为“部门”的自定义属性。以下内容不检索任何内容。它抛出 null

var mydept = mycontact.Department;

如何从 G Suite 中的用户配置文件中检索自定义属性?

【问题讨论】:

  • 我很好奇你是否能正常工作。我的回答成功了吗,还是您找到了其他方法?

标签: google-apps-script google-workspace


【解决方案1】:

根据Directory Api - Users: get需要将projection设置为"custom"

projection - 为该用户获取的字段子集。

可接受的值为:

“基本”:不包括用户的任何自定义字段。 (默认)

“custom”:包括 customFieldMask 中请求的架构中的自定义字段。

“full”:包括与此用户关联的所有字段。

那么你应该为自定义数据定义一个Schema

customFieldMask(字符串)以逗号分隔的模式名称列表。获取这些模式中的所有字段。这应该只在 projection=custom 时设置。

类似:

var mycontact = AdminDirectory.Users.get({
  "userKey": myemail,
  "projection": "full",
  "customFieldMask": "Define Schema Here"
});

然后您可以Logger.log(mycontact); 查看如何访问返回的自定义字段

【讨论】:

  • 感谢您的解决方案!必须修改语法才能为我工作:电子邮件应该在 json 之外。例如,对于所有参数,包括自定义模式:var mycontact = AdminDirectory.Users.get( myemail, {"projection": "full"});
【解决方案2】:

对于自定义架构,您只需使用full 投影即可获取所有自定义架构字段。

标准部门字段见user.organizations[0].department

https://developers.google.com/admin-sdk/directory/v1/reference/users

【讨论】:

    【解决方案3】:

    如果出现错误:

    资源未找到:userKey

    试试这个:

    mycontact = AdminDirectory.Users.get(
      myemail,{
      projection: 'full'
    });
    

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2017-10-06
      • 2014-05-21
      相关资源
      最近更新 更多