Mit der Shared Contacts API können Clientanwendungen externe Kontakte abrufen und aktualisieren, die für alle Benutzer in einer Google Apps-Domain freigegeben sind. Freigegebene Kontakte sind für alle Nutzer einer Apps-Domain sichtbar und alle Google-Dienste haben Zugriff auf die Kontaktliste.
Erstellen Sie eine XML-Darstellung des zu veröffentlichenden freigegebenen Kontakts. Diese XML muss in Form eines Atom Element der Kontakt Art sein, die wie folgt aussehen könnte:
<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
Der Google-Server erstellt einen Kontakt den Eintrag mit Ihnen geschickt, dann gibt ein HTTP 201 CREATED
Statuscode zusammen mit einer Kopie des neuen Kontakts in Form eines <entry>
Elements.
Ihre Clientanwendung kann mit der API für freigegebene Kontakte neue freigegebene Kontakte erstellen, vorhandene freigegebene Kontakte bearbeiten oder löschen und nach freigegebenen Kontakten suchen, die bestimmten Kriterien entsprechen.
Um einen Kontakt zu löschen, senden Sie eine autorisierte DELETE
Anfrage an die Bearbeitungs-URL des Kontakts.
Die URL ist von der Form:
https://www.google.com/m8/feeds/contacts/{userEmail}/full/{contactId}
mit den entsprechenden Werten anstelle von Useremail und contactID.
Hinweis: Der Standardwert userEmail-Standardwert kann verwendet werden, um auf den authentifizierten Benutzer zu verweisen.
Um sicherzustellen, dass die an die API gesendete Anforderung die Änderungen eines anderen Clients nicht überschreibt, sollte der Kontakteintrag Etag
im Anforderungsheader angegeben werden.
If-Match: Etag
Wenn die Etag
veraltet ist, antwortet der Server mit einem HTTP 412 Precondition Failed
Statuscode.
<!-- Request -->
DELETE /m8/feeds/contacts/default/full/contactId
If-match: Etag
...
<!-- Response -->
HTTP/1.1 200 OK
Nun, ich kenne alle diese Schritte und normalerweise arbeiten sie ohne Probleme. In diesem Fall hat der erwähnte Kontakt keine ID! Es wird nur in der Liste des Verzeichnisordners angezeigt, aber es kann nicht wie ein normaler Kontakteintrag gelöscht werden. – valley