javascript - 将用户导入 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);
解决方案
有时我需要的只是从代码中脱离出来......我突然意识到我可以在代码中更早地执行 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],
推荐阅读
- java - 字符串格式化程序如果值小于 10,则使用 3 个变量语法以 HH:MM:SS 格式添加前导零 java
- python - 将 lxml.objectify.StringElement 转换为元组时,各个元素仍然是字符串
- python-3.x - 如果 ret 为 True,为什么 cv2.VideoCapture read() 方法不返回帧?
- javascript - React.js - react-player 如何播放本地视频
- macos - Mac动态库中的动态符号表?
- android - 检查云 Firestore 数据库中是否已存在用户名、电子邮件和电话号码数据
- spring-boot - Spring boot Authenticate Rest API using Google OAuth2 以及如何使用 Postman 进行测试
- elm - 野榆反应堆工艺?
- mapbox - 使用 Mapbox 指定营业地点的坐标
- ios - NSFileManager,将临时下载的文件移动到永久目录的问题