Я получаю противоречивые результаты между javascript SDK facebook и переменными обработчика запросов python. Javascript SDK говорит, что мой пользователь не вошел в систему, что правильно, в то время как моя переменная шаблона, полученная из базового обработчика запросов, говорит, что мой пользователь вошел в систему и отображает имя пользователя. Достаточно ли информации, чтобы сказать, что не так, или я должен вставить код, который я считаю уместным здесь? Ссылка на страницу входа с ошибкой: здесь . Пример, который я использовал, называется демонстрационным приложением runwithfriends из Facebook, и все, что с этим приложением работало, за исключением использования логики из приложения только с веб-сайта, не требующего, чтобы пользователь был в фрейме приложения.
Плюс я не могу заставить работать API в реальном времени. Я могу только сохранить идентификатор пользователя, но не обновлять данные пользователя - почему? У меня есть код, но я не уверен, что наиболее актуально, но вот некоторые обработчики запросов, соответствующий код в основном точно такой же, как и в демонстрационном приложении:
def render(self, name, **data):
logging.debug('render')
"""Render a template"""
if not data:
logging.debug('no data')
data = {}
data[u'js_conf'] = json.dumps({
u'appId': facebookconf.FACEBOOK_APP_ID,
u'canvasName': facebookconf.FACEBOOK_CANVAS_NAME,
u'userIdOnServer': self.user.id if self.user else None,
})
data[u'logged_in_user'] = self.user #variable that is the problem
data[u'message'] = self.get_message()
data[u'csrf_token'] = self.csrf_token
data[u'canvas_name'] = facebookconf.FACEBOOK_CANVAS_NAME
self.response.out.write(template.render(
os.path.join(
os.path.dirname(__file__), 'templates', name + '.html'),
data))
И, что еще более странно, я также могу получить приложение в состоянии, когда javascript SDK сообщает, что пользователь вошел в систему, а переменная шаблона logged_in_user
говорит об обратном. Почему переменные конфликтуют?
Обновление: вот скриншоты из странного потока входа в систему. Я могу перейти на мою страницу, и мое имя из Facebook появляется:
Затем, когда я перехожу на следующую страницу, она тоже выглядит хорошо и меня зовут
Но если я выйду из системы, то окажусь в невозможном состоянии: мое имя + вышло из системы
Как мне разрешить этот странный конфликт между js и back-end?
Обновление: поскольку у меня есть эта проблема только для одного из моих приложений, я могу взять то, что работает из другого моего приложения, и интегрировать. Эта страница работает из моего другого приложения: http://cyberfaze.appspot.com/file/20985