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

python-social-auth Facebook and LinkedIn user's email is empty

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

现在 Google 可以在数据库的 auth.user 模型中很好地设置用户的电子邮件,但 LinkedIn 和 Facebook 甚至不会发送用户的电子邮件。我该怎么办?

将此添加到您的设置中:

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

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

希望这对某人有所帮助。