仅获取 Google 套件用户列表中的自定义字段的值



我在Google Suite的用户中创建了自定义字段。 类别: 福雷萨特 其中: 名称:"预报",类型:电子邮件,数字:多个值

我想使用谷歌脚本列出这些值。我用了这个: https://developers.google.com/admin-sdk/directory/v1/quickstart/apps-script

编写此代码:

function listUsers() {
var optionalArgs = {
customer: 'my_customer',
maxResults: 10,
orderBy: 'email',
projection: 'custom',
customFieldMask:'Foresatt' 
};
var response = AdminDirectory.Users.list(optionalArgs);
var users = response.users;
if (users && users.length > 0) {
Logger.log('Users:');
for (i = 0; i < users.length; i++) {
var user = users[i];
var foresatt = user.customSchemas;
Logger.log('%s (%s)', user.primaryEmail, user.name.fullName, foresatt);
}
} else {
Logger.log('No users found.');
}
}

这有效,但我只想获得值。我现在得到的:

{Foresatt={
foresatt_mob=[{value=X#X#X#X#, type=work}, {type=work, value=X#X#X#X#}, {type=work, value=X#X#X#X#}], 
foresatt_epost=[{value=xx@xx.no, type=work}, {type=work, value=xy@xx.no}, {value=yy@xx.no, type=work}], 
foresatt_navn=[{type=work, value=Xx}, {value=Xy, type=work}, {type=work, value=Yy}]
}
}

我想得到的:xx@xx.no、xy@xx.no yy@xx.no

我尝试了几件事,但恐怕我没有足够的经验。

var epost = foresatt.foresatt_epost;

结果:类型错误:无法读取属性"foresatt_epost"

var epost = foresatt('foresatt_epost');

结果:类型错误:foresatt 不是一个函数

请告诉我,我如何仅获取"foresatt epost"字段的值?

我相信你的目标如下。

  • 您希望从以下对象中检索xx@xx.no, xy@xx.no, yy@xx.no的值:
const object = {
Foresatt: {
foresatt_mob: [
{ value: "X#X#X#X#",type: "work"}, 
{ value: "X#X#X#X#",type: "work"},
{ value: "X#X#X#X#",type: "work"},
],
foresatt_epost: [
{ value: "xx@xx.no", type: "work"},
{ value: "xy@xx.no", type: "work"},
{ value: "yy@xx.no", type: "work"},
],
foresatt_navn: [
{ type: "work", value: "Xx"},
{ type: "work", value: "Xy"},
{ type: "work", value: "Yy"},
]
}
}

在这种情况下,可以从object.Foresatt.foresatt_epost数组中检索值。

示例脚本:

const object = {}; //Your object
const res = object.Foresatt.foresatt_epost.map(e => e.value);
console.log(res)  // Outputs: [ 'xx@xx.no', 'xy@xx.no', 'yy@xx.no' ]
  • 如果user.customSchemas是上述对象,则脚本如下所示。
var foresatt = user.customSchemas;
const res = foresatt.Foresatt.foresatt_epost.map(e => e.value);
console.log(res)
  • 如果要以逗号分隔字符串的形式检索值,可以使用res.join(",").

引用:

  • 地图((

: 如果不能保证您的财产将存在于您的object中,您可以执行(object.property||[]).map(...)而不是object.property.map(...)以避免错误Uncaught TypeError: Cannot read property 'forEach' of undefined

最新更新