将用户导入Google Suite时忽略错误

问题描述

我正在使用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],