1

我一直在尝试使用 Google 的 CardDAV API(并且我已经成功地让 CalDAV 访问工作)。不幸的是,在尝试发现用户的当前用户主体时,我不断收到 403 错误。FWIW,我已经去了谷歌的开发者控制台并设置了客户端信息,它似乎对 CalDAV 访问非常有效。

以下是 CardDAV 的 HTTP 流量片段:

PROPFIND https://www.googleapis.com:443/.well-known/carddav/
Depth: 0
Content-Type: text/xml
Brief: T
Authorization: Bearer ya29.1.AADtN_UD1CVKpIQPsyB4HzoKVxt4L5kPFXU3GucMTfJmJj9t0pzZqX1i3Xx748Y
<?xml version="1.0" encoding="utf-8"?>
<x0:propfind xmlns:x0="DAV:">
  <x0:prop>
    <x0:current-user-principal />
    <x0:principal-URL />
    <x0:resourcetype />
  </x0:prop>
</x0:propfind>

vvvvvvvvvvvv

HTTP PROPFIND Status(403) Forbidden
<?xml version="1.0" encoding="UTF-8"?>
<errors xmlns="http://schemas.google.com/g/2005">
 <error>
  <domain>GData</domain>
  <code>insufficientPermissions</code>
  <internalReason>Insufficient Permission</internalReason>
 </error>
</errors>

如果有人对为什么会发生这种情况有所了解,将不胜感激。

红色的

4

2 回答 2

0

我今天一直在玩这个并且刚刚成功。我正在使用两个 oauth 范围

https://www.googleapis.com/auth/carddav

https://www.google.com/m8/feeds

刚使用第二个时,我得到了 403。propfind然后我做一个深度 1getetag然后 amultiget得到vcards. 响应速度超级快。

ps 使用您使用的 URL,您还将获得一个 http-redirect

于 2014-05-13T20:08:32.083 回答
0

您需要请求访问 Google Carddav API,即https://www.googleapis.com/auth/carddav

我担心这可能还不够,因为即使有了该权限(以及https://www.googleapis.com/auth/contacts的权限),我的地址簿也会收到空报告。这很奇怪。即使在与我的客户联系之后。

于 2014-05-12T14:58:07.973 回答