使用People API将联系人包含到群组中时出错

问题描述

我需要为以下所有群组添加一个联系人。我试图将联系人逐个添加到组中,但是当我与第一个组进行测试时,API出现了错误

GoogleJsonResponseException:对people.contactGroups.members.modify的API调用失败,并显示以下错误:无法将联系人添加到已过时的系统联系人组资源名称“ contactGroups / chatBuddies”。

我想将创建的联系人添加到所有这些组中

  • contactGroups / chatBuddies
  • contactGroups /全部
  • contactGroups /朋友
  • contactGroups /同事
  • contactGroups /家庭
  • contactGroups /已阻止

我看不到这些折旧的任何地方

我尝试过

var b = {
    "phoneNumbers": [{
        "type": "mobile","value": "09876543210"
    }],"names": [{
        "unstructuredname": "Test account"
    }],"urls": [],"addresses": [{
        "type": "work","formattedValue": "0"
    }],"organizations": [{
        "name": "Organisation"
    }],"emailAddresses": [{
        "type": "home","value": "abcd@gmail.com"
    }]
}

function doGet(e) {
    var resource = People.People.createContact(b);
    var id = resource.Metadata.sources[0].id;
    var contactResourceName = resource["resourceName"];
    var group = People.ContactGroups.get("contactGroups/friends");
    var groupResourceName = group["resourceName"];
    var membersResource = {
        "resourceNamesToAdd": [
            contactResourceName
        ]
    }
    People.ContactGroups.Members.modify(membersResource,groupResourceName);
    return ContentService.createtextoutput(JSON.stringify(group));
}

解决方法

弃用通知在哪里?

它显示在一个锁着的文件柜的底部,该文件柜被塞在一个废弃的厕所中,门上有一个标语,“小心豹子”。

实际上,高级服务是包装相应REST API的薄层,在这种情况下为People API,因此服务的每种方法都有相应的API公开方法,特别是contactGroups.members.modify

该方法的说明如下,清楚地概述了实际上不建议使用系统联系人组:

唯一可以添加成员的系统联系人组是contactGroups / myContacts和contactGroups / stard。不建议使用其他系统联系人组,并且只能删除联系人。


我可以直接通过API更新系统组吗?

这似乎是不可能的,因为明确禁止通过people.updateContact方法更新memberships字段时添加要联系的系统组(您必须检查ContactGroupMembership资源文档找到信息):

可以删除任何联系人组成员身份,但只能添加用户组或“ myContacts”或“已加星标”系统组成员身份。