0
我一直在使用「個人檔案庫」來檢索和更新apps腳本中的某些共享聯繫人。我不是專家,我在以下場景遇到了一些問題:在Apps腳本中使用ProfilesApp庫檢索信息
我一直想爲每個元素檢索一些特定的「字段」,例如姓名,公司,部門,職位,電子郵件,工作電話,手機。問題是,我不知道如何動態地使用它,所以當我檢索一個沒有價值的字段時,我得到了一個令人不愉快的「未定義」,我不想在電子表格上打印,我試過嘗試/ catch,if語句確保在打印之前存在該值,但沒有任何運氣。
的retreiving功能如下:
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 != "[email protected]") {
if(workEmail != "[email protected]"){
sheet.appendRow([profiles[i].getFullName(),profiles[i].getCompanyName(),profiles[i].getDepartment(),profiles[i].getJobTitle(),workEmail,
profiles[i].getOfficeLocation(),workPhone,mobilePhone,noEmpleado]);
}
}
}
} while (token != null);
}
我認爲,通過檢索這些信息動態地將與不確定的問題結束,但我不知道該怎麼辦,所以如何任何幫助或建議要做到這一點將不勝感激。
做任何職位回答你的問題?如果是這樣,請使用「打勾」選項將該響應標記爲答案。如果沒有,你應該編輯你的問題並澄清它,這樣人們就有機會給你一個更好的答案。 –