将联系人添加到Google通讯录的主要联系人列表(未隐藏)

时间:2018-03-13 00:43:36

标签: google-apps-script google-contacts

我正在使用下面的GAS代码向Google通讯录添加新联系人(https://contacts.google.com/):

var contact = ContactsApp.createContact('Bbbb', 'Cccc', 'mymail@mails.com').addUrl(ContactsApp.Field.WORK_WEBSITE, 'https://sites.google.com/site/diccionarioie');

代码完美无缺,但只有一个细节:它将新联系人添加到隐藏列表,而不是主要或可见«联系人»列表。

我知道它有效,因为当我使用查找框搜索新创建的联系人时,在“其他联系人”列表中。我需要从头开始在主要的«Contacts»列表中创建它,否则我必须使用«Add to contacts»图标与每个创建的联系人手动创建(我计划添加数千个联系人。)

感谢。

2 个答案:

答案 0 :(得分:2)

对我来说,我必须将它们添加到名为System Group: My Contacts的联系小组。

function finishAddingContact(contact) {
  var mainGroup = ContactsApp.getContactGroup("System Group: My Contacts");
  if(mainGroup)
    mainGroup.addContact(contact);
}

请注意,getContactGroup(string)是确切的名称匹配。

我建议检查系统组的ContactGroups,然后从该列表中选择适当的组。它可能是其中联系最多的人:

function inspect() {
  var groups = ContactsApp.getContactGroups();
  for(var g = 0; g < groups.length; ++g) {
    if(groups[g].isSystemGroup()) {
      Logger.log(groups[g].getName() + ": " + groups[g].getContacts().length + " members, id=" + groups[g].getId());
    }
  }
}

答案 1 :(得分:0)

非常感谢 tehhwch

我使用你的第二个代码来获得正确的组(&#34;系统组:我的联系人&#34;),然后:

var contact = ContactsApp.createContact('Wunder', 'Bar', 'excellent@help.com');
var group = ContactsApp.getContactGroup("System Group: My Contacts");
group.addContact(contact);

一切正常,联系人可以在我的Android设备中立即看到。