Ошибка Google CardDAV API 403
Я пытался использовать Google CardDAV API (и я успешно получил доступ к CalDAV). К сожалению, я продолжаю получать ошибку 403 при попытке обнаружить текущего пользователя-принципала пользователя. Кстати, я зашел в консоль разработчика Google и настроил информацию о клиенте, и, похоже, она отлично работает для доступа к CalDAV.
Вот фрагмент HTTP-трафика для CardDAV:
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>
Если у кого-то есть понимание того, почему это может происходить, это будет с благодарностью.
красный
2 ответа
Вам необходимо запросить доступ к Google Carddav API, т.е. https://www.googleapis.com/auth/carddav
Я боюсь, что все еще может быть недостаточно прав, потому что даже с этим разрешением (а также разрешением для https://www.googleapis.com/auth/contacts) я получаю пустые отчеты для своей адресной книги. Это очень странно. Даже после установления контакта с моим клиентом.
Я играл с этим сегодня и преуспел только сейчас. Я использую две области видимости
https://www.googleapis.com/auth/carddav
https://www.google.com/m8/feeds
Я получал 403, когда просто использовал второй. Затем я делаю глубину 1 propfind
на getetag
а затем multiget
чтобы получить vcards
, Ответ супер быстрый.
PS С URL, который вы используете, вы также получите http-редирект