问题描述
我正在使用Google Apps脚本将用户从Google表格导入到Google Suite。我已经在Google管理控制台中创建了“自定义属性”,其中一些已设置为键入电子邮件。一切正常,除非一个用户缺少这些电子邮件地址。
我的用户是孩子,电子邮件地址是给孩子的父母的。一个孩子可能有1个父母和1个电子邮件。其他孩子有4个父母和4个电子邮件。
如果所有变量(epost1,epost2,epost3和epost4)都用电子邮件地址填充,则会添加用户。如果变量之一为空,则脚本将停止,并显示以下消息:
GoogleJsonResponseException:对directory.users.insert的API调用失败 错误:无效输入:custom_schema(第272行,文件 “ nyeMedlemmer”)
我试图在代码中放入一个if语句,但这是不可能的。有什么办法可以让脚本忽略这些错误?
我的代码(设置变量后):
var user = {
primaryEmail: epost,name: {
givenname: fmnavn,familyName: etternavn
},addresses: [
{
type: "home",formatted: adr
},{
type: "other",formatted: adr2
},{
type: "home",postalCode: postnr
}
],phones: [
{
value: mobil,type: "home"
}
],emails: [
{
address: epostPriv,recoveryEmail: epost1,locations: [
{
floorName: grad,type: "desk",area: "desk"
}
],gender: {
type: kjonn
},orgUnitPath: "/Speidere/Stifinnere/"+tropp,customSchemas: {
Personlig_informasjon: {
skole: skolen,hensyn: hensynet,bursdag: dato
},Innmeldingssvar: {
hjelpe_til: hjelpen,teste: testen,merknad: merknaden,bilde: bildet,samtykke: samtykket,innmeldingsdato: innmeldingsdatoen
},Foresatt: {
foresatt_navn: [
{
value: navn1
},{
value: navn2,},{
value: navn3
},{
value: navn4
}
],foresatt_epost: [
{
value: epost1
},{
value: epost2
},{
value: epost3
},{
value: epost4
}
],foresatt_mob: [
{
value: mobil1
},{
value: mobil2
},{
value: mobil3
},{
value: mobil4
}
]
},//foresatt
},//CustomSchemas
password: passord
}; //var user
user = AdminDirectory.Users.insert(user);
解决方法
有时候我所需要的只是脱离代码了……我突然想到我可以在代码中做得更早一些:
var epostForesatt = "{value:"+ epost1+"}";
if (epost2 != '') {
var epostForesatt = epostForesatt + ",{value:"+ epost2+"}";
}
if (epost3 != '') {
var epostForesatt = epostForesatt + ",{value:"+ epost3+"}";
}
if (epost4 != '') {
var epostForesatt = epostForesatt + ",{value:"+ epost4+"}";
}
然后在“ var user customSchemas”中,我编辑代码以使用此变量。
Foresatt: {
foresatt_navn: [
{
value: navn1
},{
value: navn2,},{
value: navn3
},{
value: navn4
}
],foresatt_epost: [epostForesatt],