Ich möchte ein Bild des aktuellen Benutzers in meiner Vorlage anzeigen. Wie kann ich auf die Facebook-ID des Nutzers zugreifen, wenn ich django-allauth verwende?Wie kann ich die Facebook-ID des Nutzers mit django-allauth erhalten?
Antwort
Für jeden Benutzer, der über ein soziales Konto angemeldet ist, ist eine SocialAccount
Instanz verfügbar. Dieses Modell hat einen Fremdschlüssel zu User
. Beachten Sie, dass ein Benutzer mehrere Konten für soziale Netzwerke mit seinem lokalen Konto verbinden kann, sodass in der Praxis mehr als eine Instanz verfügbar sein kann.
Wie Sie damit umgehen wollen, ist projektabhängig. Ich kann mir vorstellen, dass man das Profilbild lokal kopieren möchte, oder vielleicht möchten Sie dem Google+ Profilbild über dem Facebook-Profil den Vorzug geben, und so weiter.
Das Modell SocialAccount
verfügt über einige Hilfsmethoden, mit denen Sie auf Kontogrundlagen wie das Profilbild zugreifen können. Alles in allem ist dies eine schnelle & schmutzige Art und Weise erste verfügbare Profilbild zuzugreifen:
{{user.socialaccount_set.all.0.get_avatar_url}}
Die ID verfügbar:
{{user.socialaccount_set.all.0.uid}}
Siehe auch: https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py#L72
Ist es möglich, zu erhalten Linkedin professionelle Schlagzeile und Twitter-Profil Bio-Informationen? – thchand