python-social-auth Facebook和LinkedIn用户的电子邮件是空的

时间:2017-10-18 10:21:06

标签: python django facebook linkedin python-social-auth

我正在使用python-social-auth开发一个Django Web应用程序。我在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']

现在谷歌在数据库中的auth.user模式中设置了用户的电子邮件,但LinkedIn和Facebook甚至不会发送用户的电子邮件。我该怎么办?

1 个答案:

答案 0 :(得分:1)

将此添加到您的设置中:

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

现在Facebook和LinkedIn将发送用户的电子邮件,python-social-auth会自动将它们设置为数据库中的用户模型。

希望这有助于某人。