我的谷歌搜索完全离开了我,或者几乎没有任何关于 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
“亲切的先生,你能帮我找到神奇的脸书吗?”
答案 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对象。