Я вижу несколько разных ошибок, самая важная в этой строке:
code = 'none' if code == None else 'none'
В основном это говорит:
code = 'none' # Always!
Неудивительно, что в следующих строках всегда выводится "none";) Более того, вы должны использовать if code is None
вместо if code == None
, это очень важно!
Что вам действительно нужно, это изменить эти строки:
code = request.REQUEST.get("signed_request", None)
code = 'none' if code == None else 'none'
на:
code = request.REQUEST.get("signed_request", 'none')
И позже, когда код заработает, вам даже не нужно будет устанавливать строковое значение «none» - это просто для отладки, как я понимаю.
Кроме того, «sign_request» долженпередаваться как POST на Facebook.И согласно Django docs :
Настоятельно рекомендуется использовать GET и POST вместо REQUEST, потому что первые более явные.
Если первая подсказка не помогает, проверьте, правильно ли указан ваш URL, в соответствии с этим: Подписанный запрос на вкладку iframe в Facebook всегда пуст