Использование django-socialregistration и получение объекта 'Facebook' не имеет атрибута 'graph' - PullRequest
1 голос
/ 09 июня 2011

Я установил djangosocialregistration, и какое-то время казалось, что он работает нормально, но сейчас я получаю сообщение об ошибке и не могу понять, откуда оно.В моем представлении я делаю это, чтобы начать смотреть на API ...

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

, и я получаю это ...

У объекта 'Facebook' нет атрибута 'graph'

После того, как он перестал работать, я откатил пару небольших изменений, которые сделал, сбросил все, удалил куки, и он все еще не работает.Я использую django 1.1.1, и мне немного сложно обновиться, хотя не невозможно.Я перезагружал кучу, пытаясь заставить это работать, есть ли вероятность того, что Facebook душит входные соединения на их конце?

1 Ответ

1 голос
/ 09 июня 2011

Класс 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)

Так что я предполагаю, что cookie от Facebook не установлен для вашего сайта.Может быть, вы добавили некоторые записи в журнал отладки, чтобы определить, есть ли cookie от Facebook или нет.

Другое предположение: request.facebook где-то перезаписывается.Может быть, вы тоже это проверите.

...