我一直在尝试使用谷歌的CardDAV API(并且我已经成功地实现了CalDAV访问)。不幸的是,在尝试发现用户的当前用户主体时,我一直收到403错误。顺便说一句,我已经去了谷歌的开发者控制台并设置了客户端信息,它似乎完全适用于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>如果任何人对为什么会发生这种情况有一些见解,将不胜感激。
红色
发布于 2014-05-12 22:58:08
您需要申请访问Google Carddav API,即https://www.googleapis.com/auth/carddav
我担心这可能还不够,因为即使有了这个权限(还有https://www.googleapis.com/auth/contacts的权限),我的地址簿也会收到空报告。这很奇怪。即使在联系了我的委托人之后。
发布于 2014-05-14 04:08:32
我今天一直在玩这个游戏,刚刚成功了。我使用了两个oauth作用域
https://www.googleapis.com/auth/carddav
https://www.google.com/m8/feeds
当我使用第二个时,我得到了403分。然后,我在getetag上执行深度1 propfind,然后执行multiget以获得vcards。响应速度非常快。
附注:使用您正在使用的URL,您还将获得一个http-redirect
https://stackoverflow.com/questions/21487706
复制相似问题