HTTPError 403 (Запрещено) с Django и python-social-auth, подключающимся к Google с помощью OAuth2

Используя python-social-auth , я получаю сообщение об ошибке 403: Forbiden после принятия доступа из Google

EDIT: Я недавно (2017) имел ту же ошибку, но под новым сообщением: 401 Client Error: Unauthorized for url: https://accounts.google.com/o/oauth2/token

3 Solutions collect form web for “HTTPError 403 (Запрещено) с Django и python-social-auth, подключающимся к Google с помощью OAuth2”

Вам необходимо добавить Google+ API в список разрешенных API-интерфейсов в консоли разработчика Google (в рамках APIs )

Примечание. Если вы хотите увидеть реальное сообщение об ошибке, используйте трассировку для просмотра содержимого переменной response.text ( response.text ). Я использую werkzeug для этого ( django-extensions + python manage.py runserver_plus ).

Спасибо также. Я использовал этот учебник python-social-auth по искусству и логике , но не смог пройти мимо 403: Запрещенный HTTPError в / complete / google-oauth2 / до включения Google+ API, как указано выше, и ждать нескольких минут для включения Google это .

Кроме того, мне пришлось разместить шаблоны в каталоге шаблонов и установить в параметрах settings.py TEMPLATE_DIRS = ('/path/to/psa_test/thirdauth/templates/',) .

Надеюсь, это поможет кому-то по пути. В целом, это заняло около 6 часов, чтобы понять это. Неплохо, я счастлив.

Для меня я использовал область полного URI, которая устарела Google с 1 сентября 2014 года, это упоминается в документации python-social-auth здесь

http://psa.matiasaguirre.net/docs/backends/google.html#google-oauth2

Google обесценивает полные URL-адреса с 1 сентября 2014 года в пользу Google+ API и недавно введенных более коротких имен областей. Но python-social-auth уже ввел изменения областей в e3525187, который был выпущен на v0.1.24.

Однако, если вы не хотите включить API Google+ по какой-либо причине и хотите продолжить работу с полной областью полного uri, вам необходимо выполнить шаги, указанные в той же ссылке:

 # Google OAuth2 (google-oauth2) SOCIAL_AUTH_GOOGLE_OAUTH2_IGNORE_DEFAULT_SCOPE = True SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [ 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile' ] # Google+ SignIn (google-plus) SOCIAL_AUTH_GOOGLE_PLUS_IGNORE_DEFAULT_SCOPE = True SOCIAL_AUTH_GOOGLE_PLUS_SCOPE = [ 'https://www.googleapis.com/auth/plus.login', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile' ] SOCIAL_AUTH_GOOGLE_OAUTH2_USE_DEPRECATED_API = True SOCIAL_AUTH_GOOGLE_PLUS_USE_DEPRECATED_API = True 

Это сработало для меня, поскольку я не хотел включать API Google+ в этот момент.

  • TypeError on freebusy вызывает API Google Calendar v3 с использованием apiclient Python
  • Как создать объект Google API OAuth Credentials из альтернативного источника
  • Ошибка выдачи SSL 185090050 при аутентификации через Oauth
  • Ошибка атрибута при попытке запустить быстрый запуск API Gmail в Python
  • Несанкционированное взаимодействие с API календаря Google v3
  • Проблемы с попыткой использования gdata и oauth2 в python
  • Получение ошибки: redirect_uri_mismatch URI перенаправления в запросе: http: // localhost: 8080 / oauth2callback не соответствует зарегистрированному URI редиректа
  • Как проверить подлинность с помощью API настроек электронной почты Google, используя учетную запись службы oauth2 Клиент Python?
  • Python - лучший язык программирования в мире.