Почему 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" } }
Ответы
Ответ 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'
Ответ 5
Мне пришлось удалить разрешения для моего приложения, а затем вернуться, чтобы предоставить разрешения в https://security.google.com/settings/security/permissions
Ответ 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