Подтвердить что ты не робот

Почему API календаря Google (oauth2) отвечает "Недостаточное разрешение"?

Я получаю запрос на следующий URL (с заменой {id} на идентификатор из веб-интерфейса):

https://www.googleapis.com/calendar/v3/calendars/{id}

Несколько утверждений:

  • Заголовок Authorize правильно задан с помощью допустимого токена доступа (токен отлично работает для API Google Analytics)

  • Я установил следующую область для oauth2, которая отображается правильно:

    https://www.googleapis.com/auth/calendar
    
  • Срок действия маркера, по-видимому, не истек; он работает для API Google Analytics.

    { "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
    
4b9b3361

Ответ 1

Чтобы исправить, я отменил доступ к приложению в https://accounts.google.com/IssuedAuthSubTokens и повторил попытку, после чего я смог получить доступ к API правильно.

Несмотря на наличие области в списке и область видимости на странице предоставления гранта Google OAuth2, дополнительная область не была предоставлена.

Ответ 2

Я бы дважды проверял, включена ли область - я видел это точное сообщение, когда я запросил неправильную область. Посещение https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx - хороший способ проверить.

Предполагая, что проверка выполняется, убедитесь, что у пользователя, у которого есть токен доступа, есть разрешение на просмотр календаря, к которому вы пытаетесь получить доступ. Значок "Gears" → "Настройки" → "Календари" → (выберите календарь) → "Поделиться календарем"

Ответ 3

Добавить область для календаря посетить календарь API и проверить конфигурацию доступа

https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.readonly

Ответ 4

Мне пришлось включить область Google Plus, чтобы иметь достаточное разрешение на доступ к календарю:

Итак, мой scope выглядел так:

'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly', 'https://www.googleapis.com/auth/plus.login'

Ответ 6

У меня была такая же проблема, когда я пытался добавить событие в мой календарь Google. Как я наконец исправил это:

  • удалить мой файл 'credentials.json'
  • запустите программу Python, которая выглядит как программа быстрого запуска Google с надписью "SCOPES = ' https://www.googleapis.com/auth/calendar '". Эта программа была единственным решением, которое работало для меня. Запуск моей команды django для вызова моей настоящей работы не сработал для меня. Но это исправило мою проблему с разрешением.

Затем он открывает ваш браузер, и Google запрашивает ваше разрешение на управление вашим календарем и создание нового "credentials.json" в вашем репертуаре.

Ответ 7

Я также сталкиваюсь с той же проблемой, когда добавляю или редактирую событие. И после некоторого поиска в Google, я обнаружил, что одна область даст вам все разрешения -

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