1

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

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

我得到这个...

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

在它停止工作后,我回滚了我所做的一些小改动,重置了所有内容,删除了 cookie,但它仍然无法正常工作。我正在运行 django 1.1.1,升级对我来说有点困难,但并非不可能。我一直在重新加载一堆试图让它工作,F​​acebook有没有可能在他们的末端限制登录连接?

4

1 回答 1

1

socialregistration 中间件中的 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某处被覆盖。也许你也检查一下。

于 2011-06-09T06:15:50.100 回答