Facebook Connect:使用django-profiles和django-socialregistration捕获用户数据

时间:2010-10-19 22:22:00

标签: django facebook registration user-profile

我的谷歌搜索完全离开了我,或者几乎没有任何关于 django-socialregistration 的文档/教程。太糟糕了,因为它似乎是一个不错的应用程序。通过一些反复试验,我设法让它主要在我的网站上运行。

我的问题,使用 django-socialregistration 如何请求获得facebook用户的全名,当前城市和出生日期的权限,并将其存储在我的UserProfile表中(这是我的AUTH_PROFILE_MODULE for django-在注册时,Django中的个人资料)另外,一旦建立连接,我如何从Django发布到用户的墙上?

目前,当我点击“与Facebook连接”按钮建立Facebook连接时,会创建一个新的Django用户并且用户使用该Django帐户登录。但是,没有创建UserProfile并且不保存任何facebook个人资料数据。

任何facebook连接大师都希望帮助Django小马飞到Facebookland?

设定:
- Django 1.2.1
- Python 2.5.2
- django-socialregistration 0.4.2
- django-registration 0.7
- django-profiles 0.2

alt text
“亲切的先生,你能帮我找到神奇的脸书吗?”

3 个答案:

答案 0 :(得分:8)

在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')

答案 1 :(得分:3)

FWIW,我刚从github上“问题”部分的应用作者那里找到了这个适度有用的金块:

来自“tolano”的

问题:

  

我有一个与用户关联的个人资料模型,每次创建用户时,也应创建个人资料。我们应该为此目的创建一个新的自定义设置视图吗?

     

我发现了几个问题,因为文档很差。非常感谢你。

从“flashingpumpkin”回答:

  

是。理想情况下,您将使用自己的设置覆盖设置视图。调整用户创建操作的更简单方法是将自定义表单传递到设置视图中。你可以通过覆盖标准网址来做到这一点。

答案 2 :(得分:1)

这是另一个相关的金块(来源:http://github.com/flashingpumpkin/django-socialregistration/issues/closed#issue/7)足够这些,这个页面将成为事实上的django-socialregistration文档;)

来自“girasquid”的

问题:

  

也许我只是遗漏了一些东西,但我被困在这里 - 有没有办法将其他网站上的帐户“连接”给已经存在的用户?

     

例如,我已经注册了Really Awesome网站,因此我不需要再次注册 - 但我想连接我的Facebook和Twitter帐户,以便我也可以登录

     

有没有办法做到这一点?如果没有......我该怎么做?

从“flashingpumpkin”回答:

  

是的。只需使用与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