【问题标题】:Add contacts to Google Contacts' main Contacts list (not hidden)将联系人添加到 Google 联系人的主联系人列表(未隐藏)
【发布时间】:2018-03-13 00:43:35
【问题描述】:

我正在使用下面的 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/...');

代码完美运行,但只有一个细节:它将新联系人添加到隐藏列表中,而不是添加到主要或可见的“联系人”列表中。

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

谢谢。

【问题讨论】:

    标签: google-apps-script google-contacts-api


    【解决方案1】:

    对我来说,我必须将它们添加到名为 System Group: My Contacts 的 ContactGroup 中。

    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());
        }
      }
    }
    

    【讨论】:

    • 非常感谢。它为我赚了一大笔钱
    【解决方案2】:

    非常感谢tehhwch

    我使用您的第二个代码来获取正确的组(“系统组:我的联系人”),然后:

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

    它可以工作,并且该联系人立即在我的 Android 设备中可见。

    【讨论】:

      猜你喜欢
      • 2013-03-15
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多