使用django-socialregistration并获取'Facebook'对象没有属性'graph'

时间:2011-06-09 05:39:13

标签: django facebook django-socialauth

我已经安装了djangosocialregistration,它似乎工作正常一段时间,但现在我收到一个错误,我无法弄清楚它来自哪里。在我的观点中,我这样做是为了开始查看API ......

me = request.facebook.graph.get_object("me")

我得到了这个......

'Facebook'对象没有属性'图'

退出工作后,我回滚了一些我做过的小改动,重置所有内容,删除了cookie,但仍然无法正常工作。我正在运行django 1.1.1而且升级有点困难,但并非不可能。我一直在重装一堆试图让它工作,有没有可能facebook限制登录连接的结束?

1 个答案:

答案 0 :(得分:1)

社会注册中间件中的Facebook类看起来像这样:

class Facebook(object):
    def __init__(self, user=None):
        if user is None:
            self.uid = None
        else:
            self.uid = user['uid']
            self.user = user
            self.graph = facebook.GraphAPI(user['access_token'])

如果__inii__上未设置任何用户,则不会设置graph。在中间件中,应通过以下方式设置:

fb_user = facebook.get_user_from_cookie(request.COOKIES, getattr(settings, 'FACEBOOK_APP_ID', settings.FACEBOOK_API_KEY), settings.FACEBOOK_SECRET_KEY)

request.facebook = Facebook(fb_user)

所以我的猜测是来自Facebook的cookie没有为你的网站设置。也许你添加一些调试日志来确定是否有来自facebook的cookie。

另一个猜测是request.facebook在某处被覆盖。也许你也检查一下。