Reputation: 31
I'm using Google Contacts API v3 docs, OAuth Playground 2.0.
I'm able to pull all contacts via a get request. I can use POST to create a new contact but can't seem to populate the name fields, among others. The email and phone number populate fine.
I've been using atom/xml in the request body verbatim from the Contacts API v3 doc as below.
<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>
Any help is much appreciated, thanks.
Upvotes: 3
Views: 977
Reputation: 1613
Yes you must need to add GData-Version to your HTTP request Header:
[request setValue:@"3.0" forHTTPHeaderField:@"GData-Version"];
Upvotes: 0
Reputation: 2468
I got stung by this, too. I was neglecting to add this HTTP Header to the request:
GData-Version: 3.0
Before v3, the way to indicate the name was <atom:title>Full Name</atom:title>
instead of <gd:name>...</gd:name>
. But I guess it's better to just add the header.
Upvotes: 5