我正在使用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甚至不会发送用户的电子邮件。我该怎么办?
答案 0 :(得分:1)
将此添加到您的设置中:
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {'fields': 'id,name,email',}
SOCIAL_AUTH_FIELD_SELECTORS = ['email-address',]
现在Facebook和LinkedIn将发送用户的电子邮件,python-social-auth会自动将它们设置为数据库中的用户模型。
希望这有助于某人。