Facebook Connect: сбор пользовательских данных с помощью django-профилей и django-socialregistration - PullRequest
7 голосов
/ 20 октября 2010

Либо мой поиск в Google полностью оставил меня, либо почти нет документации / учебных пособий для django-socialregistration . Жаль, потому что это выглядит как достаточно хорошее приложение. С помощью проб и ошибок мне удалось запустить его в основном на моем сайте.

Мой вопрос, используя django-socialregistration как запросить разрешение на полное имя пользователя Facebook, текущий город и дату рождения и сохранить его в моей таблице UserProfile (которая является моим AUTH_PROFILE_MODULE для профилей django) ) в Джанго при регистрации? Кроме того, как я могу публиковать сообщения на стене пользователя из Django после установления соединения?

В настоящее время, когда я нажимаю кнопку «Подключиться к Facebook», устанавливается соединение с Facebook, создается новый пользователь Django, и пользователь входит в систему с этой учетной записью Django. Однако UserProfile не создается и данные профиля Facebook не сохраняются.

Есть ли какие-нибудь гуру в Facebook, которые хотят помочь пони Django лететь в Facebookland?

Настройка:
- Джанго 1.2.1
- Python 2.5.2
- Джанго-социальная регистрация 0.4.2
- Джанго-регистрация 0,7
- django-профили 0.2

alt text
«Добрый сэр, не могли бы вы помочь мне найти волшебную страну Facebook?»

Ответы [ 3 ]

8 голосов
/ 20 октября 2010

В facebook_js.html вам нужно настроить следующую строку, раскомментировав элементы, которые нужно получить от FB:

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

Затем в FacebookMiddleware вы можете извлечь эти данные из fb_user , вот так:

     facebook.GraphAPI(fb_user['access_token']).get_object('me')
3 голосов
/ 20 октября 2010

FWIW, я только что нашел этот довольно полезный слепок от автора приложения, похороненный в разделе «Проблемы» на github:

вопрос от "Толано":

У меня есть модель профиля, связанная с пользователями, и каждый раз, когда пользователь создается, профиль также должен быть создан. Должны ли мы создать новый пользовательский вид настройки для этой цели?

Я нахожу несколько проблем из-за плохой документации. Большое спасибо.

ответ от "мигающего насоса":

Да. В идеале вы перезапишете вид установки своим собственным. Более простой способ настроить то, что делается при создании пользователя, - передать пользовательскую форму в представление настройки. Вы сделаете это, переопределив стандартный URL.

1 голос
/ 20 октября 2010

Вот еще один соответствующий самородок (источник: http://github.com/flashingpumpkin/django-socialregistration/issues/closed#issue/7) Достаточно этого, и эта страница станет фактической документацией по django-socialregistration;)

вопрос от "girasquid":

Может быть, я что-то упускаю, но я застрял здесь - есть ли способ «подключить» учетные записи на других сайтах к уже существующему пользователю?

Например, я уже зарегистрировался на Really Awesome Website, поэтому мне не нужно регистрироваться снова - но я хотел бы подключить свои учетные записи Facebook и Twitter, чтобы я мог также войти в них.

Есть ли способ сделать это уже?Если нет ... как бы я это сделал?

ответ от "мигающего насоса":

Да, есть.Просто используйте те же теги шаблонов для Facebook Connect, что и для регистрации.В зависимости от того, вошел ли пользователь в систему или нет, он создаст только объект FacebookProfile и свяжет его с существующим пользователем - или создаст и объект User, и объект FacebookProfile.

Посмотрите здесь:
http://github.com/flashingpumpkin/django-socialregistration/blob/master/socialregistration/templates/socialregistration/facebook_button.html и

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

...