Django 2.0 allauth Facebook 2018

Я получил доступ к Twitter и Google с помощью Django all-auth. Возникли проблемы с Facebook. Пробовал каждую комбинацию между localhost / 127.0.0.1 / и т. д. (Также пошел по экстремальным маршрутам, изменив мои хосты на local.domain.com - даже получил SSL, поскольку Facebook, по-видимому, блокирует доступ по http (с марта 2018 года).

Дошел до этого ... теперь я получаю эту ошибку Может ли кто-нибудь привести меня в правильное русло? Я собираюсь вырвать волосы.

KeyError at /accounts/facebook/login/token/ 'access_token' Request Method:    POST Request

URL: https://localhost:8000/accounts/facebook/login/token/ Django Version: 2.0.3 Exception Type: KeyError Exception Value:
'access_token'

{'error': {'code': 5,
           'fbtrace_id': 'Bs4PHOvc+rZ',
           'message': "This IP can't make requests for that application.",
           'type': 'OAuthException'}}

Детали дополнения:

http: // локальный: 8000 / учетные записи / facebook / логин / обратный вызов

SOCIALACCOUNT_PROVIDERS = {
    'facebook': {
        'METHOD': 'js_sdk',
        'SCOPE': ['email', 'public_profile', 'user_friends'],
        'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
        'INIT_PARAMS': {'cookie': True},
        'FIELDS': [
            'id',
            'email',
            'name',
            'first_name',
            'last_name',
            'verified',
            'locale',
            'timezone',
            'link',
            'gender',
            'updated_time',
        ],
        'LOCALE_FUNC': lambda request: 'en_GB',
        'EXCHANGE_TOKEN': True,
        'VERIFIED_EMAIL': False,
        'VERSION': 'v2.5',
    }
}
«Этот IP-адрес не может делать запросы для этого приложения». - похоже, что вы что-то ввели в «Белый список IP-адресов сервера» на панели инструментов приложения, но он не соответствует IP-адресу, который вы пытаетесь отправить с этого момента.
CBroe 19.03.2018 08:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
1 622
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Django 1.4.15, django-allauth 0.18.0, API обновления Facebook v2.8
Начиная с марта 2018 года, Facebook по умолчанию устанавливает «Использовать строгий режим для URls перенаправления» ДА. Моя проблема была в конфигурации приложения Facebook, а не в django-allauth. Снова работаем Настройки приложения:

Настройки Основные
- Домены приложений: AnySite.com
- URL политики конфиденциальности: "https://AnySite.com/myprivacy/"
- Сайт: "https://AnySite.com/"
Настройки Расширенные
- Белый список IP-адресов сервера: оставьте поле пустым
- Менеджер домена: оставьте поле пустым

Настройки входа в Facebook
Да Клиент OAuth Login
Да Вход через Интернет по OAuth
Да (новое: принудительно) Использовать строгий режим для перенаправления URL-адресов Да Встроенный браузер OAuth Login
Да Применять HTTPS
Действительные URL-адреса перенаправления OAuth: "https://AnySite.com/accounts/facebook/login/callback/" (обязательно)
Надеюсь, поможет.

Большое спасибо, дружище! Я очень ценю это. Сработало отлично!

Ronald Langeveld 05.04.2018 12:02

Обновите, если кто-то еще борется с этим в 2020 году:

У разработчиков facebook:

  1. создать тестовое приложение из вашего основного приложения
  2. settings -> basic, добавьте localhost и 127.0.0.1 в домены приложений. установите URL-адрес сайта https: // localhost: 8000
  3. Товары -> вход в facebook -> настройки. клиент, вход в систему включен. Вход во встроенный браузер OAuth включен. Добавьте все это в действительные URI перенаправления OAuth: https://127.0.0.1:8000/https://127.0.0.1:8000/accounts/facebook/login/callback https: // локальный: 8000 / https: // localhost: 8000 / accounts / facebook / login / callback

В django:

  1. pip install django-sslserver
  2. добавить sslserver в INSTALLED_APPS
  3. python manage.py runsslserver

В админке:

  1. Создайте 2 сайта, https://127.0.0.1:8000/ и https: // localhost: 8000 /
  2. Добавьте социальное приложение, facebook, добавьте в свой тестовый идентификатор приложения и ключ. Зарегистрируйте в нем 2 указанных выше сайта.

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