2

首先,如果这是转发,我想向社区道歉。我在stackoverflow上搜索可能对我有帮助的东西,但我的搜索没有成功。所以我的问题来了。

也许这是我缺乏技能,但我个人无法通过 django_facebook 文档找到出路。我经历了整件事,尽管我认为所有的部分都解释得很好,但对我来说创造大局还是相当困难的......

我设法将 django_facebook 与 facebook 上的应用程序连接甚至登录,但我不能做的是提取有关已登录用户的信息。我的目标是允许用户在我的网站上登录/注册 Facebook,然后拉他们来自 Facebook 的基本信息,以便我可以将他们推荐为他们在我的网站上的个人资料的用户信息。

如果您能彻底解释整个登录/注册并获取有关用户进程的信息,我将非常感激。

ps 有人向我推荐了 django_allauth。我应该切换到那个吗?如果是,djang_facebook 和 django_allauth 的优缺点是什么?pps 我也找不到任何适合 django_facebook 和 django_allauth 的教程。有的话请给个链接:)

4

2 回答 2

1

django-facebook 的快速概述建议我将信息保存在

BaseFacebookModel

所以有一个叫做 post_connect 的信号。如果需要,您可以使用它从上述模型中获取信息并将其保存到您的个人资料中。

同样在 django-allauth 中也可以轻松完成。我这样做是为了获取出生日期。有一个名为 SocialAccount 的模型,用于存储用户的公共信息。额外的数据以 json 的形式存储。在 allauth 对用户进行身份验证后,您可以简单地使用该数据并在 UserProfile 中使用它。

让我知道它是否有帮助。

于 2014-08-18T15:37:25.393 回答
1

Here is a tutorial explaining how to use all_auth for social authentication. You can access the data from the allauth object directly, using a code snippet like the following in your view:

First, get information from the account using:

account_uid = SocialAccount.objects.filter(user_id=request.user.id, provider='facebook')

Then, using member attributes like given below, you can get the parameters which have been made public.

account_uid[0].get_avatar_url()
account_uid[0].extra_data['username']
account_uid[0].extra_data['first_name']
account_uid[0].extra_data['last_name']
account_uid[0].extra_data['gender']
account_uid[0].extra_data['email']
account_uid[0].extra_data['link']
account_uid[0].extra_data['uid']
于 2014-08-18T19:17:17.540 回答