0

При разработке и тестировании API Google Contacts v3 (область действия https://www.google.com/m8/feeds/) я создал запись в общем списке контактов нашей компании (то есть в папке Directory), которая не имеет идентификатора, clickable («Контакт не найден»). Поэтому я не могу удалить эту запись. Также он не указан при запросе «контактов списка» (totalResults: 0).Фантомная запись, созданная в Google Shared Contacts

Служба поддержки Google for Work здесь не помогла и посоветовала задать вопрос на этом форуме. Я надеюсь, что кто-то знает, как избавиться от этого фантомного входа.

ответ

1

Как и ожидалось, удаление должно быть выполнено с помощью Google и не было возможным с помощью дополнительного вызова API со стороны.

0

Shared Contacts API позволяет клиентским приложениям получать и обновлять внешние контакты, общие для всех пользователей домена Google Apps. Общие контакты видны всем пользователям домена Apps, и все службы Google имеют доступ к списку контактов.

Создайте XML-представление общего контакта для публикации. Этот XML должен быть в виде элемента Atom Контактного рода, которые могли бы выглядеть следующим образом:

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' 
xmlns:gd='http://schemas.google.com/g/2005'> 
<atom:category scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact' /> 
<gd:name> 
<gd:givenName>Elizabeth</gd:givenName> 
<gd:familyName>Bennet</gd:familyName> 
<gd:fullName>Elizabeth Bennet</gd:fullName> 
</gd:name> 
<atom:content type='text'>Notes</atom:content> 
<gd:email rel='http://schemas.google.com/g/2005#work' 
primary='true' 
address='[email protected]' displayName='E. Bennet' /> 
<gd:email rel='http://schemas.google.com/g/2005#home' 
address='[email protected]' /> 
<gd:phoneNumber rel='http://schemas.google.com/g/2005#work' 
primary='true'> 
(206)555-1212 
</gd:phoneNumber> 
<gd:phoneNumber rel='http://schemas.google.com/g/2005#home'> 
(206)555-1213 
</gd:phoneNumber> 
<gd:im address='[email protected]' 
protocol='http://schemas.google.com/g/2005#GOOGLE_TALK' 
primary='true' 
rel='http://schemas.google.com/g/2005#home' /> 
<gd:structuredPostalAddress 
rel='http://schemas.google.com/g/2005#work' 
primary='true'> 
<gd:city>Mountain View</gd:city> 
<gd:street>1600 Amphitheatre Pkwy</gd:street> 
<gd:region>CA</gd:region> 
<gd:postcode>94043</gd:postcode> 
<gd:country>United States</gd:country> 
<gd:formattedAddress> 
1600 Amphitheatre Pkwy Mountain View 
</gd:formattedAddress> 
</gd:structuredPostalAddress> 

</atom:entry> 

https://www.google.com/m8/feeds/contacts/example.com/full 

Сервер Google создает контакт, используя запись, которую вы послали, а затем возвращает код HTTP 201 CREATED состояния, а также с копией нового контакта в виде элемента <entry>.

Ваше клиентское приложение может использовать API общих контактов для создания новых общих контактов, редактирования или удаления существующих общих контактов и запросов для общих контактов, соответствующих определенным критериям.

Чтобы удалить контакт, отправьте авторизованный запрос DELETE на URL-адрес для изменения контакта.

URL-адрес имеет вид:

https://www.google.com/m8/feeds/contacts/{userEmail}/full/{contactId} 

С соответствующими значениями в месте USEREMAIL и ContactID.

Примечание. Значение специального пользователя Email по умолчанию может использоваться для обращения к аутентифицированному пользователю.

Чтобы гарантировать, что запрос, отправленный в API, не перезаписывает изменения другого клиента, в заголовок запроса должен быть указан контактный номер Etag.

If-Match: Etag 

Если Etag устарела, сервер отвечает кодом HTTP 412 Precondition Failed статуса.

<!-- Request --> 
DELETE /m8/feeds/contacts/default/full/contactId 
If-match: Etag 
... 
<!-- Response --> 
HTTP/1.1 200 OK 
+0

Ну, я знаю все эти шаги и, как правило, они работают без проблем. В этом случае у упомянутого контакта нет идентификатора! Он просто отображается в списке папки «Каталог», но его нельзя удалить, как обычная запись контакта. – valley

 Смежные вопросы

  • Нет связанных вопросов^_^