从Google API脚本 - Google管理员目录中的用户个人资料中检索自定义属性

时间:2018-02-21 18:21:44

标签: google-apps-script gsuite

这是关于G套件用户。以下使用Google Admin SDK在Google管理员目录中使用。它检索电子邮件地址和用户的全名。

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

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

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

var mydept = mycontact.Department;

如何从G套件中的用户个人资料中检索自定义属性?

3 个答案:

答案 0 :(得分:3)

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

  

投影 - 要为此用户提取的字段子集。

     

可接受的值是:

     

"基本":不要为用户包含任何自定义字段。 (默认)

     

" custom":包含customFieldMask中请求的模式中的自定义字段。

     

" full":包含与此用户关联的所有字段。

然后,您应为自定义数据定义Schema

  

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

时设置

类似于:

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

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

答案 1 :(得分:0)

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

有关标准部门字段,请参阅user.organizations[0].department

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

答案 2 :(得分:-1)

如果遇到错误:

  

找不到资源:userKey

尝试一下:

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