2010-10-19 10 views
7

Moje wyszukiwanie google całkowicie mnie opuściło lub nie ma prawie żadnej dokumentacji/samouczków dla django-socialregistration. Szkoda, bo wygląda na dość fajną aplikację. Dzięki próbom i błędom udało mi się go uruchomić głównie w mojej witrynie.Facebook Connect: przechwytywanie danych użytkownika za pomocą profili django i django-socialregistration

moje pytanie, używając Django socialregistration Jak zażądać zgody na pełną nazwę użytkownika Facebooka, obecnego miasta i datę urodzenia i przechowywać go w moim stole UserProfile (który jest moim AUTH_PROFILE_MODULE dla django profile) w Django po rejestracji? Ponadto, jak mogę opublikować wiadomość na ścianie użytkownika z Django po nawiązaniu połączenia?

Obecnie, po kliknięciu przycisku "Połącz się z Facebookiem" zostaje nawiązane połączenie z Facebookiem, zostaje utworzony nowy użytkownik Django, a użytkownik jest zalogowany na tym koncie Django. Jednak nie utworzono profilu UserProfile i nie zapisano danych profilu facebook.

Dowolne facebookowe połączenie guru tam, aby pomóc kucykowi Django w locie na Facebookland?

konfiguracji:
- Django 1.2.1
Pythona - 2.5.2
- DJANGO-socialregistration 0.4.2
- django rejestracji 0,7
- django profile 0,2

alt text
"Proszę, pomóż mi znaleźć magiczny świat na Facebooku?"

Odpowiedz

8

W facebook_js.html trzeba dostosować następujący wiersz, przez odkomentowanie przedmiotów, które trzeba uzyskać z FB:

 FB.login(handleResponse/*,{perms:'publish_stream,sms,offline_access,email,read_stream,status_update,etc'}*/); 

Następnie w FacebookMiddleware można wyodrębnić te dane z fb_user, jak to :

 facebook.GraphAPI(fb_user['access_token']).get_object('me') 
+0

Podjąłeś Django pony zadowolony. Bardzo szczęśliwy. – mitchf

+1

Aby wyjaśnić drugą kwestię, FacebookMiddleware dodaje dane użytkownika Facebook do żądania, dzięki czemu można uzyskać informacje o profilu użytkownika w następujący sposób: fbuser = request.facebook.graph.get_object ("me"). Następnie możesz uzyskać dane takie jak imię użytkownika: fbuser ['first_name'], gender: fbuser ['gender'] lub city/state: fbuser ['location'] ['name'] – mitchf

+0

Aby zamieścić post z Django na Facebooku: request.facebook.graph.put_object ("ja", "feed", message = "Post z Django!") – mitchf

3

FWIW, ja po prostu znaleźć to umiarkowanie pomocne samorodek z pochowany w dziale „Problemy” na github autora aplikacji:

pytanie z „tolano”:

mam modelu profilu związanego z użytkownikami, i za każdym razem użytkownik tworzony jest profil powinny być tworzone również. Czy powinniśmy stworzyć nowy niestandardowy widok instalacji do tego celu?

Znajduję kilka problemów, ponieważ dokumentacja jest słaba. Dziękuję Ci bardzo.

odpowiedź od "flashingpumpkin":

Tak. Idealnie nadpisasz widok konfiguracji własnym. Łatwiejszą metodą dostosowania tego, co dzieje się podczas tworzenia użytkownika, jest przekazanie niestandardowego formularza do widoku instalacji. Zrobisz to, zastępując standardowy URL.

1

Oto kolejny istotny samorodek (źródło: http://github.com/flashingpumpkin/django-socialregistration/issues/closed#issue/7) dość tych i ta strona stanie się de facto dokumentacji django-socialregistration;)

pytanie z "girasquid":

Może po prostu coś mi brakuje, ale utknąłem tutaj - czy istnieje sposób na "połączenie" kont w innych witrynach z już istniejącym użytkownikiem?

Na przykład zarejestrowałem się już na naprawdę świetnej stronie internetowej, więc nie muszę się ponownie rejestrować - ale chciałbym połączyć moje konta na Facebooku i Twitterze, aby móc logować się do nich jako dobrze.

Czy można już to zrobić? Jeśli nie ma ... jak to zrobić?

odpowiedź od "flashingpumpkin":

Tak jest. Po prostu używaj tych samych szablonów do Facebook Connect, jak przy rejestracji. W zależności od tego, czy użytkownik jest już zalogowany, stworzy tylko obiekt FacebookProfile i połączy go z istniejącym użytkownikiem - lub utworzy zarówno obiekt User, jak i obiekt FacebookProfile.

Sprawdźcie tutaj:
http://github.com/flashingpumpkin/django-socialregistration/blob/master/socialregistration/templates/socialregistration/facebook_button.html i

http://github.com/flashingpumpkin/django-socialregistration/blob/master/socialregistration/templatetags/facebook_tags.py

Powiązane problemy