使用 People API 将联系人添加到群组时出错

Cod*_*Guy 2 google-contacts-api google-apps-script google-people-api

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

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

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

  • 联系人群组/聊天好友
  • 联系人组/所有
  • 联系人组/朋友
  • 联系小组/同事
  • 联系团体/家庭
  • 联系人组/阻止

我没有看到这些组折旧的任何地方

我试过

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));
}
Run Code Online (Sandbox Code Playgroud)

Ole*_*ter 5

弃用通知在哪里?

它展示在一个上锁的文件柜的底部,这个文件柜卡在一个废弃的厕所里,门上有一个牌子,上面写着“小心豹子”。

严肃地说,高级服务是包装相应 REST API 的薄层,在本例中为People API,因此服务的每个方法都有一个由 API 公开的相应方法,特别是contactGroups.members.modify.

该方法的描述如下,清楚地概述了系统联系人组实际上已被弃用:

唯一可以添加成员的系统联系人组是 contactGroups/myContacts 和 contactGroups/starred。其他系统联系人组已弃用,只能删除联系人。


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

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

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