Я использую шаблон Social Cookbook на основе Python для создания приложения Facebook. , но у меня возникла проблема с поддержкой Canvas, которая выполняет POST вместо GET. В примере Cookbook не указано, как с этим справиться. На основании прочтения этого примера Hello World и глядя на пример Run With Friends, я могу получить подписанный запрос, прочитать данные (идентификатор пользователя, токен) и установить метод GET.
Однако по мере того, как это продолжается, браузер / сервер Tornado входит в цикл, в котором он неоднократно запускает LoginHandler. Выдает мне ошибку «Firefox обнаружил, что сервер перенаправляет запрос на этот адрес таким образом, который никогда не будет выполнен». Я пытался понять это два дня и подумал, что если кто-то может помочь, то это будет StackOverflow. Спасибо за любые рекомендации, которые вы могли бы дать по модификации Social Cookbook для поддержки холста Facebook.
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