首页 > 解决方案 > 将用户导入 Google 套件时忽略错误

问题描述

我正在使用 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,
      type: "home"
    }
  ],
  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); 

标签: javascriptgoogle-apps-scriptgoogle-sheetsgoogle-workspace

解决方案


有时我需要的只是从代码中脱离出来......我突然意识到我可以在代码中更早地执行 if :

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],

推荐阅读