Google apps script 仅获取Google Suite用户列表中自定义字段的值
我在谷歌套件中的用户中创建了自定义字段。 类别:福雷萨特 其中: 名称:“forestat epost”,类型:email,编号:多个值 我想用谷歌脚本列出这些值。我用了这个: 要编写此代码:Google apps script 仅获取Google Suite用户列表中自定义字段的值,google-apps-script,google-admin-sdk,Google Apps Script,Google Admin Sdk,我在谷歌套件中的用户中创建了自定义字段。 类别:福雷萨特 其中: 名称:“forestat epost”,类型:email,编号:多个值 我想用谷歌脚本列出这些值。我用了这个: 要编写此代码: function listUsers() { var optionalArgs = { customer: 'my_customer', maxResults: 10, orderBy: 'email', projection: 'custom', custo
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.');
}
}
我想要的是:xx@xx.no, xy@xx.no, yy@xx.no
我试过几种方法,但我恐怕经验不足
var epost = foresatt.foresatt_epost;
结果:TypeError:无法读取属性“ForeAtt_epost”
var epost = foresatt('foresatt_epost');
结果:TypeError:forestat不是函数
请告诉我,如何仅获取“Forestat epost”字段的值?我相信您的目标如下
- 您想要检索
来自以下对象:xx@xx.no, xy@xx.no, yy@xx.no
object.foreatt.foreatt_epost
数组中检索值
示例脚本:
- 如果上面的对象是
,则脚本如下所示user.customSchemas
- 如果要以逗号分隔的字符串形式检索值,可以使用
res.join(“,”)
如果不能保证您的属性将存在于您的
对象中
,您可以执行(object.property |[]).map(…)
,而不是object.property.map(…)
,以避免出现错误未捕获类型错误:无法读取未定义的属性“forEach”
,非常感谢!你让我阅读了数组(也是嵌套数组)、对象等,所以我加入了一个检查,看看“foreatt”是什么类型。我尝试了您的代码,但出现了一个错误,然后我意识到–对于自定义字段为空的情况,我需要一个if语句。由于if,我不得不将const改为var。我的代码现在在if users之后,对于I:var user=users[I];var forestat=user.customSchemas//var type=类型化(forestat);if(foreatt==null){var lengde=0;var epost=“”;}else{var lengde=Object.keys(foreatt.length;var epost=foreatt.foreatt.foreatt.foreatt_epost.map(e=>e.value);}Logger.log(“%s(%s)”,user.primaryEmail,user.name.fullName,epost)//foresatt,object,matrise[0]@Ingeborg I在回答中添加了一个修改,以确定属性可能不存在的地址时间。看一下结尾的便条,看看它是否对你有用。干杯@泽克托尔感谢您的支持。我没注意到对方的答复。我为此道歉。我认为这对OP很有用。
var epost = foresatt('foresatt_epost');
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"},
]
}
}
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' ]
var foresatt = user.customSchemas;
const res = foresatt.Foresatt.foresatt_epost.map(e => e.value);
console.log(res)