3

我正在使用 Google Contacts API v3 文档,OAuth Playground 2.0。

我可以通过获取请求拉取所有联系人。我可以使用 POST 创建新联系人,但似乎无法填充姓名字段等。电子邮件和电话号码填充良好。

我一直在 Contacts API v3 文档的请求正文中逐字使用 atom/xml,如下所示。

    <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='liz@gmail.com' displayName='E. Bennet'/>
  <gd:email rel='http://schemas.google.com/g/2005#home'
    address='liz@example.org'/>
  <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='liz@gmail.com'
    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>

非常感谢任何帮助,谢谢。

4

2 回答 2

5

我也被这个刺痛了。我忽略了将此 HTTP 标头添加到请求中:

GData-Version: 3.0

在 v3 之前,表示名称的方式是<atom:title>Full Name</atom:title>代替<gd:name>...</gd:name>. 但我想最好只添加标题。

于 2013-04-27T19:40:30.273 回答
0

是的,您必须将 GData-Version 添加到您的 HTTP 请求标头中:

[request setValue:@"3.0" forHTTPHeaderField:@"GData-Version"];
于 2018-04-19T09:13:29.983 回答