我一直在使用配置文件库来检索和更新应用程序脚本中的一些共享联系人。我根本不是专家,并且在以下情况下遇到了一些麻烦:
我总是想为每个元素检索一些特定的“字段”,例如姓名、公司、部门、职位、电子邮件、工作电话、手机。问题是我不知道如何动态地使用它,所以当我检索一个没有值的字段时,我会遇到一个我不想打印在电子表格上的令人不快的“未定义”,我试过尝试/catch,一个 if 语句,用于保证该值在打印之前存在,但没有任何运气。
检索函数如下:
function listAllProfiles() {
var profiles = null;
var token = null;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
do {
var result = ProfilesApp.getProfilesForPaging(token);
profiles = result.getProfiles();
token = result.getToken();
for (var i = 0; i < profiles.length; i++) {
var workEmail, workPhone, mobilePhone, noEmpleado;
var emails = profiles[i].getEmails(ContactsApp.Field.WORK_EMAIL);
var workPhones = profiles[i].getPhones(ContactsApp.Field.WORK_PHONE);
var mobilePhones = profiles[i].getPhones(ContactsApp.Field.MOBILE_PHONE);
var custom = profiles[i].getCustomFields(ContactsApp.Field.NUMERO_DE_EMPLEADO);
for (var j in emails) { workEmail = emails[0].getAddress(); }
for (var k in workPhones) { workPhone = workPhones[k].getPhoneNumber(); }
for (var l in mobilePhones)
{ if ( mobilePhones[l].getPhoneNumber() != undefined) { //this is not working
mobilePhone = mobilePhones[l].getPhoneNumber(); } else {
Logger.log("does not exist");
}
}
for (var m in custom) { noEmpleado = custom[m].getValue(); }
// Sólo imprime usuarios reales dados de alta
if (workEmail != ".@nchezg.com") {
if(workEmail != "secure-data-connector-user@nchezg.com"){
sheet.appendRow([profiles[i].getFullName(),profiles[i].getCompanyName(),profiles[i].getDepartment(),profiles[i].getJobTitle(),workEmail,
profiles[i].getOfficeLocation(),workPhone,mobilePhone,noEmpleado]);
}
}
}
} while (token != null);
}
我认为通过动态检索此信息将以未定义的问题结束,但我不知道该怎么做,所以任何关于如何做的帮助或建议将不胜感激。