使用 JSON 更新 Google 的联系人 API

Posted

技术标签:

【中文标题】使用 JSON 更新 Google 的联系人 API【英文标题】:Updating Google's Contacts API with JSON 【发布时间】:2010-12-28 00:26:54 【问题描述】:

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

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

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

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

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

我没有看到关于“在 PUT 中使用 JSON 更新 google 联系人”的任何痕迹。

谷歌开发指南说:

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

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

【讨论】:

【参考方案2】:

虽然它没有记录 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"
      
    
  

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

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

希望这对想要使用带有 JSON 的 Google 联系人 API 的人有所帮助。

【讨论】:

以上是关于使用 JSON 更新 Google 的联系人 API的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 google-api-ruby-client People API 传递 OAuth 令牌?

将Google People API与服务帐户配合使用

更改了我的包名,更新了 google services.json 文件,计费和付款停止工作

我正在用颤振编写 Firebase 应用程序,但我收到有关 google-services.json 和初始化的错误

错误:文件 google-services.json 丢失。 (因为 com.google.gms:google-services 从 4.2.0 更新到 4.3.0)

Google Apps 脚本 - 如何解析响应