Я использую шаблон Social Cookbook на основе Python для создания приложения Facebook, но у меня проблема с Canvas support which does a POST instead of a GET. В примере поваренной книги не указано, как справиться с этим. Основываясь на чтении этого Hello World example и глядя на пример Run With Friends, я могу получить подписанный запрос, прочитать данные (идентификатор пользователя, токен) и установить метод GET.Facebook Canvas App - Circular Login Redirect
Однако, как он продолжает, сервер Browser/Tornado переходит в цикл, где он неоднократно запускает LoginHandler. Предоставление мне ошибки «Firefox обнаружил, что сервер перенаправляет запрос на этот адрес таким образом, который никогда не будет завершен». Я пытался понять это в течение двух дней и подумал, может ли кто-нибудь помочь - это будет StackOverflow. Благодарим за любые рекомендации, которые вы могли бы внести в модификацию социальной кулинарной книги для поддержки Facebook Canvas.
class BaseHandler(tornado.web.RequestHandler):
def initialize(self):
self.init_facebook()
def init_facebook(self):
# initial facebook request comes in as a POST with a signed_request
signed_request = self.get_argument('signed_request', None)
if signed_request and self.request.method == u'POST':
app_secret = options.facebook_app_secret
data = load_signed_request(signed_request, app_secret)
user_id = data.get(u"user_id")
mytoken = data.get(u"oauth_token")
print mytoken
self.set_secure_cookie("uid", user_id)
self.request.method = u'GET' # causes loss of request.POST data