Ошибка 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-редирект

Другие вопросы по тегам