Я не получаю url изображения профиля linkedin в дополнительных данных, используя django allauth linkedin login
Я не могу получить изображение профиля linkedin в дополнительных данных при авторизации с помощью django-allauth. В дополнительных данных url изображения профиля не существует. Я использую django==4.0.4, django-allauth==0.50.0. вот мой setup.py приложения django.
#in setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_extensions',
'ReviewLink',
'Users',
# alluth
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
#social account providers
'allauth.socialaccount.providers.linkedin_oauth2',
]
SOCIALACCOUNT_PROVIDERS = {
'linkedin': {
'SCOPE': [
'r_liteprofile',
'r_emailaddress'
],
'PROFILE_FIELDS': [
'id',
'first-name',
'last-name',
'email-address',
'picture-url',
'public-profile-url',
]
}
}
SITE_ID = 2
SOCIALACCOUNT_ADAPTER = 'Users.my_adapter.MySocialAccountAdapter'
#my_adapter.py
class MySocialAccountAdapter(DefaultSocialAccountAdapter):
def pre_social_login(self, request, sociallogin):
if sociallogin.is_existing:
print("the social account already exists")
return
def populate_user(self, request, sociallogin, data):
print(f" Social login account profile data IN POPULATE-USER FUNCTION : {sociallogin.account.extra_data}")
dictionaryData = sociallogin.account.extra_data
x = dictionaryData['elements']
fname = dictionaryData['firstName']
lname = dictionaryData['lastName']
country = fname['preferredLocale']
print(f"Data = {data}")
print(f'provided provided data = {data["first_name"]}')
print(f'provided provided data = {data["last_name"]}')
print(f'provided provided data = {data["email"]}')
#data is a dictionaty {first_name, Last_name, email}
try:
#if the person with this email exists in the database dont do anything
# person = Person.objects.get(email = data["email"])
email = PersonEmails.objects.get(email = data["email"])
return
except:
#else add the person
person = Person()
person.email = data["email"]
person.firstname = data["first_name"]
person.lastname = data["last_name"]
person.country = country['country']
person.short_id = shortuuid.uuid()
person.save()
#add person's email in the list as one person can have more than one email
emails = PersonEmails()
emails.email = data["email"]
emails.person = person
emails.save()
return
Я хочу получать url картинки профиля linkedin при входе в приложение. буду благодарен за помощь. Я буду ждать вашего ответа.