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