Я пытаюсь удалить настраиваемое поле на основе его значения, но оно умирает при тестировании. Текущий код:
function testDelete2() {
var contacts = ContactsApp.findContactGroup('test').getContacts();
for (var i in contacts) {
var checkfield = contacts[i].getUserDefinedField('testlabel')
if (checkfield == 'testvalue') {
var customFields = contacts[i].getCustomFields();
customFields.deleteCustomField('testlabel');
}
}
}
Я получаю эту ошибку: TypeError: не удается найти функцию deleteCustomField в объекте CustomField.
Понятия не имею, что это значит. Пожалуйста помоги. Я читал эту страницу снова и снова, и это не помогло: https://developers.google.com/apps-script/service_contacts
Я даже попробовал этот вариант, который не сработал:
customFields.getLabel('testlabel').deleteCustomField();
Кроме того, есть ли где-нибудь простая документация с примерами того, как работать с настраиваемыми полями контактов Google? Добавление, удаление, получение значения - все это кажется невозможным. Я ценю помощь с этим вопросом, но также не против найти где-нибудь руководство с простыми образцами, на которые можно посмотреть.
Вдохновляясь отличным кодом Сержа, я придумал этот код для удаления (скоро добавлю полный код с удалением / добавлением):
ОБНОВЛЕНИЕ: упрощенный процесс (не знаю, почему не попробовал это вначале, возможно, я это сделал, но в любом случае кодировал неправильно), вынув пользовательское поле удаления / добавления и просто обновив значение этого настраиваемого поля
function testUpdateDues() {
var duescos = ContactsApp.findContactGroup('z8 - Assoc').getContacts();
for (var i in duescos) {
var customFields = duescos[i].getCustomFields();
for (var n in customFields) {
if (customFields[n].getLabel() == 'Dues Amount' && customFields[n].getValue() == 'unstated'){
customFields[n].setValue('$ 500');
}
}
}
}
Окончательное редактирование позволяет мне добавлять / редактировать любое настраиваемое поле на основе назначения группы контактов Google (спасибо, Серж за помощь !!) с помощью триггеров на основе времени в скрипте:
function UpdateRegion1() {
UpdateCustomField('Reg 1 - Pan', 'Region' , 'Region 1 - Panhandle');
}
function UpdateCustomField(group, customlabel, customvalue) {
var contacts = ContactsApp.findContactGroup(group).getContacts();
for (var i in contacts) {
var fields = new Array();
var customFields = contacts[i].getCustomFields();
for(var n in customFields) {
fields.push(customFields[n].getLabel());
}
if (fields.indexOf(customlabel)==-1){
contacts[i].addCustomField(customlabel, customvalue);
}
for(var j in customFields) {
if (customFields[j].getLabel() == customlabel && customFields[j].getValue() != customvalue){
customFields[j].setValue(customvalue);
}
}
}
}
Utilities.sleep(4000)
? без него пробовали? - person Serge insas   schedule 02.11.2012