如何将谷歌表格数据库与谷歌联系人同步

问题描述

我有一个带有联系人的谷歌表格数据库

这是我的数据库示例

enter image description here

我需要使用谷歌应用程序脚本将此联系人同步到我的谷歌联系人

如果有新联系人上传

如果现有联系人更改了他的任何数据信息以在谷歌联系人中更新它

对这个请求有帮助吗?

-- 更新:

到目前为止我让这个脚本工作

 function myFunction() {
  // Sheet Variables Below
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getSheetByName('xx')
  var headerRows = 1;
  var MaxRow = sheet.getLastRow();
  var datarange = sheet.getDatarange();
  var data = datarange.getValues();     // Read all data
  data.splice(0,headerRows);            // Remove header rows

  function addContact() {
    for (var i = 0; i < data.length; i++) {
      var row = data[i];
      var firstName = row[1];
      var lastName = row[2];
      var email = row[3];
      var phone = row[4];
      var group = row[5];
      var atiende = row[6];
      var address1 = row[7];
      var address2 = row[8];
      var address3 = row[9]
      var notes = row[10];
      var customfields = row[11];
      var status = row[12];
      var contactid = row[13];

      var contact = ContactsApp.createContact(firstName,lastName,email);
      contact.addPhone(ContactsApp.Field.MOBILE_PHONE,phone);
      contact.addAddress(ContactsApp.Field.HOME_ADDRESS,address1);
      contact.setNotes(address2 + ' ' + address3)
      contact.addCompany(atiende)

      var group = ContactsApp.getContactGroup("System Group: My Contacts");
      group.addContact(contact);
   
    }
  }
  addContact();    
}

我已经把数据结构改成了这个

enter image description here

这是为了将所有联系人上传到谷歌联系人

但我现在需要通过电话号码检查联系人是否存在,如果存在则更新它,如果没有更改可以跳过它,其他方式我在谷歌联系人中有重复

我认为值得一提的是,这是一个自动生成数据库,而不是我手动更改数据

解决方法

您可以在使用事件对象向 yr ss 添加新行时更新联系人

警告:我是一名业余爱好者,但对 gscripter 充满热情,因此请谨慎使用我提供的任何建议

function newContact(e) {
  
 var sht = e.source.getActiveSheet();
 var row = e.range.getRow();

 var drng = sht.getRange(row,2,1,6).getValues();
 // drng is a single row 2D array
 // adjust indexes to suit 
  
    var first = drng[0][0];
    var surname = drng[0][1];
    var phone = drng[0][2];
    var email = drng[0][3];
    var consentDate = drng[0][5];
    var grp = 'group-name'; 
  
    //create contact
    var contact = ContactsApp.createContact(first,surname,email);
    var contactID = contact.getId();
          
    //add info via bug workaround ie getting the new contact via contactID 
    contact = ContactsApp.getContactById(contactID); 
    contact.addPhone('mobile',phone);    
    
    //update contact
    var group = ContactsApp.getContactGroup(grp);
    contact = contact.addToGroup(group);
}