/ / python-social-auth Les emails de l'utilisateur de Facebook et de LinkedIn sont vides - Python, Django, Facebook, linkedin, python-social-Auth

python-social-auth L'email de l'utilisateur de Facebook et de LinkedIn est vide - Python, Django, Facebook, linkedin, python-social-Auth

Je développe une application Web Django en utilisant python-social-auth. J'ai ceci dans mes paramètres Django:

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = "xxx"
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = "xxx"

SOCIAL_AUTH_FACEBOOK_KEY = "xxx"
SOCIAL_AUTH_FACEBOOK_SECRET = "xxx"
SOCIAL_AUTH_FACEBOOK_SCOPE = ["email",]

SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = "xxx"
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = "xxx"
SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ["r_basicprofile", "r_emailaddress"]

Maintenant, Google définit parfaitement le courrier électronique de l'utilisateur dans le modèle auth.user de la base de données, mais LinkedIn et Facebook n'enverront même pas le courrier électronique de l'utilisateur. Que dois-je faire?

Réponses:

1 pour la réponse № 1

Ajoutez ceci à vos paramètres:

SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {"fields": "id,name,email",}
SOCIAL_AUTH_FIELD_SELECTORS = ["email-address",]

Maintenant, Facebook et LinkedIn enverront le courrier électronique de l’utilisateur et python-social-auth les définira automatiquement comme modèle d’utilisateur dans la base de données.

J'espère que cela aide quelqu'un.