Pregunta

Tengo un proyecto de Python Facebook alojado en Google App Engine y utilizar el siguiente código de inicialización mango de la API de Facebook usando PyFacebook.

# Facebook Initialization
def initialize_facebook(f):

    # Redirection handler
    def redirect(self, url):
        logger.info('Redirecting the user to: ' + url)
        self.response.headers.add_header("Cache-Control", "max-age=0")
        self.response.headers.add_header("Pragma", "no-cache")
        self.response.out.write('<html><head><script>parent.location.replace(\'' + url + '\');</script></head></html>')
        return 'Moved temporarily'

    auth_token = request.params.get('auth_token', None)
    fbapi = Facebook(settings['FACEBOOK_API_KEY'], settings['FACEBOOK_SECRET_KEY'], auth_token=auth_token)

    if not fbapi:
        logger.error('Facebook failed to initialize')

    if fbapi.check_session(request) or auth_token:
        pass
    else:
        logger.info('User not logged into Facebook')
        return lambda a: redirect(a, fbapi.get_login_url())

    if fbapi.added:
        pass
    else:
        logger.info('User does not have ' + settings['FACEBOOK_APP_NAME'] + ' added')
        return lambda a: redirect(a, fbapi.get_add_url())

    # Return the validated API
    logger.info('Facebook successfully initialized')
    return lambda a: f(a, fbapi=fbapi)

Estoy tratando de configurarlo para que pueda dejar este decorador en cualquier método manejador de la página y verificar que el usuario ha configurado todo correctamente. La cuestión es que cuando el manejador de redirección se llama, se inicia un bucle infinito de cambio de dirección.

He intentado utilizar un HTTP 302 redirección en lugar de la de javascript pero que seguía fallando también. ¿Alguien sabe qué puedo hacer para solucionar este problema?

vi esta pregunta similar pero no hay respuestas.

¿Fue útil?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top