Моя цель состояла в том, чтобы создать электронную таблицу клиентов с их контактной информацией, адресами и примечаниями, которая создаст новые записи в контактах Google и перетянет идентификатор контакта и «добавлено уже» на лист, который помечает контакты, уже введенные в контакты Google с помощью ». ДОБАВЛЕНО »на листе, что я успешно сделал. Все работает нормально, проблема только в нескольких неправильных записях одного и того же человека в Контактах Google, потому что всякий раз, когда контакт обновляется, он создает новую запись.
function createContact() {
var alreadyAdded = "ADDED";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var startRow = 5; // First row of data to process
var numRows = sheet.getRange('J2').getValue(); // Last row of data to process
// Fetch the range of cells A5:J
var dataRange = sheet.getRange(startRow, 1, numRows, 10)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var addedAlready = row[0]
var firstName = row[1]
var lastName = row[2]
var company = row[3]
var phone = row[4]
var notes = row[5]
var address = row[6]
var email = row[7];
if (addedAlready != alreadyAdded) {
// Create contact in Google Contacts and retrieve ID
var contact = ContactsApp.createContact(firstName, lastName, phone);
var group = ContactsApp.getContactGroup("System Group: My Contacts");
group.addContact(contact);
var id = contact.getId();
// Add values to new contact
contact.addCompany(company, "");
contact.addPhone(ContactsApp.Field.WORK_PHONE, phone);
contact.setNotes(notes);
contact.addAddress(ContactsApp.Field.WORK_ADDRESS, address);
contact.addEmail(ContactsApp.Field.WORK_EMAIL, email);
sheet.getRange(startRow + i, 1).setValue(alreadyAdded);
sheet.getRange(startRow + i, 9).setValue(id);
};
};
};
Ниже также скрипт "onEdit", который удаляет "ДОБАВЛЕНО" статус и позволяет обновить контакт или, другими словами, удвоить в контактах Google.
function onEdit(e){
var sh=e.range.getSheet();
if(sh.getName()=="Sheet1" && e.range.columnStart==2,4,5,6 && e.range.rowStart>4) {
var sh2=e.source.getSheetByName("Sheet2");
sh2.getRange(e.range.rowStart,1,e.range.rowEnd-e.range.rowStart+1,1).clearContent()
}
}
Чтобы решить и устранить эту проблему, я теперь прошу вас, ребята, потому что я полностью потерян здесь, если любой может помочь мне создать сценарий, который будет извлекать все существующие идентификаторы контактов из контактов Google, сравнивать их с идентификаторами conatct в столбце «I» и удалять все записи в контактах Google, которые не соответствуют идентификаторам в столбце «I».
Любая помощь будет принята с благодарностью! Большое спасибо!