Для всех, кого это интересует, это уже не так.
Следуйте инструкциям в этом ответе, чтобы запросить специальную привилегию (доступ к электронной почте) для вашего приложения Twitter: Можем ли мы получить идентификатор электронной почты из Twitter oauth API?
Вам нужно будет предоставить ссылки для ваших условий использования и политики конфиденциальности в вашем приложении.Затем на вкладке разрешений вы можете поставить галочку «Запросить адреса электронной почты у пользователей».
Теперь, когда вы запрашиваете Twitter API, добавьте «? Include_email = true» в URL (таким образом, полный URL-адрес будет «https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true").»).параметр описан в документации твиттера: https://dev.twitter.com/rest/reference/get/account/verify_credentials
Вы можете обновить бэкэнд twitter.py в библиотеке python-social-auth с помощью этой модификации URL, и он тоже будет работать;)
Начиная со строки 35 в бэкэнде twitter.py:
def user_data(self, access_token, *args, **kwargs):
"""Return user data provided"""
return self.get_json(
'https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true',
auth=self.oauth_auth(access_token)
)
и включайте response.get ('email', '') несколькими строками выше:
def get_user_details(self, response):
"""Return user details from Facebook account"""
fullname, first_name, last_name = self.get_user_names(
response.get('name', ''),
response.get('first_name', ''),
response.get('last_name', '')
)
return {'username': response.get('username', response.get('name')),
'email': response.get('email', ''),
'fullname': fullname,
'first_name': first_name,
'last_name': last_name}