如何使用Google CardDAV API插入新联系人?

时间:2014-06-27 14:23:16

标签: google-api carddav

在接触操作方面,

Google CardDAV API Developer's Guide非常简短。有关如何插入新联系人的唯一提示是:

  

客户端应用程序使用VCard 3.0格式的新联系人发出POST请求。响应将包含新联系人的ID。

这是我发出的请求,但我收到的回复是400 Bad Request:

POST https://www.googleapis.com/carddav/v1/principals/foo.bar@gmail.com/lists/default/ HTTP/1.1
Authorization: Bearer ya29.foobar
Content-Type: text/vcard; charset="UTF-8"
Host: www.googleapis.com
Content-Length: 77
Expect: 100-continue
Connection: Keep-Alive

BEGIN:VCARD
VERSION:3.0
FN:Foo Bar
UID:abc-def-fez-1234546578
END:VCARD

任何人都知道我在这里错过了什么?

3 个答案:

答案 0 :(得分:0)

你尝试过使用像这样的网址吗? https://www.googleapis.com/carddav/v1/principals/foo.bar@gmail.com/lists/default/ CARD_NAME.vcf

答案 1 :(得分:0)

做一个PUT,而不是POST。像这样:

PUT /carddav/v1/principals/foo.bar@gmail.com/lists/default/DEADBEEF.vcf
If-None-Match: *
Authorization: ...
Host: www.googleapis.com
Content-Type: text/vcard; charset="UTF-8"
Expect: 100-continue

BEGIN:VCARD
VERSION:3.0
PRODID:-//YouYou//Windows//EN
FN:Foo Bar
N:Bar;Foo;;;
UID:DEADBEEF
END:VCARD

答案 2 :(得分:0)

还要确保在您的OAuth2.0范围内包含对CARDDAV API的访问权限:https://www.googleapis.com/auth/carddav

我花了很长时间才弄清楚自己得到了一个"权限不足"错误。