나는 Social Cookbook 기반의 Python 기반 템플릿을 사용하여 Facebook 응용 프로그램을 만들었지 만 Canvas support which does a POST instead of a GET에 문제가 있습니다. Cookbook 예제에는이를 처리하는 방법이 포함되어 있지 않습니다. 이 Hello World example을 읽고, Run With Friends 예제를 보면, 서명 된 요청을 받고, 데이터 (사용자 ID, 토큰)를 읽고, 메소드를 GET으로 설정할 수 있습니다.페이스 북의 캔버스 애플 리케이션 - 순환 로그인 리디렉션
그러나 브라우저/토네이도 서버는 계속 진행하면서 반복적으로 LoginHandler를 실행합니다. "Firefox가 서버가이 주소에 대한 요청을 완료되지 않는 방식으로 리디렉션 중임을 감지했습니다."라는 오류 메시지가 나타납니다. 나는이 일을 2 일 동안 알아 내려고 노력해 왔고 누군가가 도울 수 있다면 생각했다. StackOverflow가 될 것이다. 페이스 북의 캔버스를 지원하기 위해 소셜 쿡북을 수정하면서 제공 할 수있는 모든 지침을 주셔서 감사합니다. 무엇을 내 몇 가지 문제가 있었다 -
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