2017-10-18 10 views
0

Je développe une application web Django en utilisant python-social-auth. J'ai dans mes paramètres Django:python-social-auth L'adresse de l'utilisateur de Facebook et LinkedIn est vide

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 l'e-mail de l'utilisateur très bien dans le modèle de auth.user dans la base de données, mais LinkedIn et Facebook va même pas envoyer l'e-mail de l'utilisateur. Que fais-je?

Répondre

1

Ajouter à votre paramètres:

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

maintenant Facebook et LinkedIn enverra l'email de l'utilisateur et python-auth-sociaux les définir automatiquement le modèle de l'utilisateur dans la base de données.

Espérons que cela aide quelqu'un.