我按照说明将 Django-facebook 安装到我的网站中,以允许用户在我的网站上注册、登录、邀请朋友和分享内容。我可以使用他们的 Facebook 帐户轻松地将用户注册到我的网站。但是,我对如何将它们注销、检索用户的 facebook 用户名以及如何集成多选好友邀请的事情感到非常困惑。
这是我的 settings.py 文件
TEMPLATE_CONTEXT_PROCESSORS = (
'django_facebook.context_processors.facebook',
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.core.context_processors.tz',
'django.contrib.messages.context_processors.messages',
)
AUTHENTICATION_BACKENDS = (
'django_facebook.auth_backends.FacebookBackend',
'django.contrib.auth.backends.ModelBackend',
)
AUTH_PROFILE_MODULE = "appname.UserProfile"
FACEBOOK_APP_ID = "<myappID>"
FACEBOOK_APP_SECRET ="<myappsecretkey>"
在我的 models.py 中,我创建了一个自定义用户配置文件,如下所示:
# User model
class UserProfile(FacebookProfileModel):
user = models.OneToOneField(User)
last_login = models.DateTimeField(blank=True, null=True)
is_active = models.BooleanField(default=False)
playedHours = models.FloatField(default = 0)
playedSongs = models.ManyToManyField(Song, blank=True, null = True)
invitedFriends = models.ManyToManyField('self', blank = True, null = True)
def __unicode__(self):
return self.facebook_name
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
"""Create a matching profile whenever a user object is created."""
if created:
profile, new = UserProfile.objects.get_or_create(user=instance)
在 urls.py 我添加了这两行,但我不知道他们做了什么:
(r'^facebook/', include('django_facebook.urls')),
(r'^accounts/', include('django_facebook.auth_urls')),
我真正想要实现的是,一旦用户注册了 facebook,我想获取他们的姓名和头像,并允许他们邀请他们的朋友。
我一直在寻找(最新的)教程,但我失败了。非常感谢任何帮助!谢谢