Я попытался использовать Django AllAuth, чтобы сделать регистрацию пользователем через Facebook.Регистрация Facebook с Django Allauth
Я должен создать API REST, чтобы использовать Django REST Framework.
Я нашел эту простую tutorial сделать первую регистрацию пользователя, но, вероятно, есть некоторые отличия от текущей реализации:
Я попробовал этот код:
def post(self, request):
data = JSONParser().parse(request)
access_token = data.get('access_token', '')
try:
app = SocialApp.objects.get(provider="facebook")
token = SocialToken(app=app, token=access_token)
# check token against facebook
login = fb_complete_login(app, token)
login.token = token
login.state = SocialLogin.state_from_request(request)
# add or update the user into users table
ret = complete_social_login(request, login)
# if we get here we've succeeded
return Response(status=200, data={
'success': True,
'username': request.user.username,
'user_id': request.user.pk,
})
except:
traceback.print_exc()
return Response(status=401, data={
'success': False,
'reason': "Bad Access Token",
})
, но теперь я вижу, что fb_complete_login
принимать 3 параметра : request
, app
и token
.
Итак, я попытался также поставить запрос как этот параметр функции, но некоторые строки позже у меня есть ошибка на l ogin = fb_complete_login(app, token)
.
TypeError: add_message() argument must be an HttpRequest object, not 'Request'.
Любые предложения приветствуются!
Он пытается использовать систему сообщений Django с объектом запроса Django Rest Framework («Request»), а не объектом HttpRequest, который он ожидает. У меня аналогичная проблема, и я не уверен, что это конфигурация или если это ошибка. В качестве быстрого исправления вы можете отключить «django.contrib.messages» в своем файле settings.py. – user1814277