使用JSON更新Google Contacts API

时间:2009-12-18 11:48:47

标签: javascript json gdata-api

使用Google Contacts API,您可以使用JSON获取联系信息,但有没有办法使用JSON更新它?我在尝试中没有取得任何成功,并且在我尝试时继续得到“prolog中不允许的内容”错误(似乎表明他们期望在PUT请求中使用XML)。

在GET请求中,我从以下URL获取: http://www.google.com/m8/feeds/contacts/user@gmail.com/full?alt=json

当我想使用XML I PUT将联系人更新为以下类型的URL时(根据正在更新的联系人而有所不同): http://www.google.com/m8/feeds/contacts/user@gmail.com/base/0

我已经尝试将alt = json添加到PUT请求中,但这只是在黑暗中拍摄,因为我没有找到任何实际文档来确认使用JSON进行更新甚至是可能的。我正在使用firefox插件在JS中进行这种交互,这就是为什么我的偏好是使用JSON(我一直在使用E4X直到这一点并发现它非常笨拙)。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:5)

我看不到“在PUT中使用 JSON 更新Google联系人”的痕迹。

谷歌开发指南说:

  

首先更新现有联系人   检索要更新的条目,   修改它,然后发送PUT请求   使用消息中的更新条目   联系人编辑网址的正文。使用   application / atom + xml内容类型

(从 http://code.google.com/apis/contacts/docs/3.0/developers_guide_protocol.html#Updating

答案 1 :(得分:0)

尽管它没有记录有关 PUT json格式的联系人的信息,但我已经尝试过这样成功:

请求标头:

PUT https://www.google.com/m8/feeds/contacts/default/full/{contactId}?alt=json
Content-Type: application/json

请求正文:

{
  "entry":{
    "gd$name": {
      "gd$fullName": {
        "$t": "My Name"
      },
      "gd$givenName": {
        "$t": "My"
      },
      "gd$familyName": {
        "$t": "Name"
      }
    }
  }
}

基本思想是使用类似于{strong> GET 和alt=json的结果的格式。

但是,对于Batch operations for Contacts,我会收到错误消息Unsupported Output Format

希望这对于希望将Google的Contacts API与JSON结合使用的人很有帮助。