#google-apps-script #google-contacts-api #google-people-api
#google-apps-script #google-contacts-api #google-people-api
Вопрос:
Мне нужно добавить один контакт во все перечисленные ниже группы. Я попытался добавить контакт в группы один за другим, однако, когда я тестировал с первой группой, API выдал ошибку
Исключение GoogleJsonResponseException: ошибка при вызове API для people.contactGroups.members.modify с ошибкой: не удается добавить контакты в устаревшее системное имя ресурса контактной группы «contactGroups / chatBuddies».
Я хочу добавить созданный контакт во все эти группы
- Группы контактов / 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));
}
Ответ №1:
Где было уведомление об устаревании?
Он был выставлен на дисплее в нижней части запертого шкафа для хранения документов, застрявшего в заброшенном туалете, с табличкой на двери «Остерегайтесь леопарда».
Со всей серьезностью, расширенные сервисы представляют собой тонкие слои, обертывающие соответствующие REST API, в данном случае People API, поэтому каждый метод сервиса имеет соответствующий метод, предоставляемый API, в частности contactGroups.members.modify
.
Описание метода выглядит следующим образом, четко указывая, что системные группы контактов фактически устарели:
Единственными системными контактными группами, в которые могут быть добавлены участники, являются contactGroups/ MyContacts и contactGroups / starred . Другие системные группы контактов устарели, и в них могут быть удалены только контакты.
Могу ли я обновлять системные группы напрямую через API?
Похоже, это невозможно, поскольку добавление системных групп в контакт при обновлении memberships
поля с помощью people.updateContact
метода явно запрещено (вы должны изучить ContactGroupMembership
документы ресурсов, чтобы найти информацию):
Любое членство в контактной группе может быть удалено, но может быть добавлено только членство в группе пользователей или «MyContacts» или «помеченное» системной группой.