问题描述
我需要为以下所有群组添加一个联系人。我试图将联系人逐个添加到组中,但是当我与第一个组进行测试时,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”或“已加星标”系统组成员身份。