2009-07-12 4 views
2

J'essaie d'écrire ma première application pour Facebook en utilisant python et pyfacebook hébergé sur Google App Engine. Le problème auquel je suis confronté est celui des redirections cycliques. Firefox meurt en se plaignant "Cette page n'est pas redirection correctement" lorsque je visite http://apps.facebook.com/appname.Comment éviter une redirection cyclique lors de l'écriture d'une application facebook en utilisant pyfacebook et google app engine?

Voici le code:

class CanvasHandler(webapp.RequestHandler): 
    def get(self): 
     ## instantiate the Facebook API wrapper with your FB App's keys 
     fb = facebook.Facebook(config.FACEBOOK_API_KEY, config.FACEBOOK_API_SECRET) 

     ## check that the user is logged into FB and has added the app 
     ## otherwise redirect to where the user can login and install 
     if fb.check_session(self.request) and fb.added: 
      pass 
     else: 
      url = fb.get_add_url() 
      self.response.out.write('<script language="javascript">top.location.href="' + url + '";</script>') 
      return 

     rendered_template = render_template('facebook/app.html') 
     self.response.out.write(rendered_template) 

Je vois ce problème quand je suis connecté sur Facebook. Toute aide est appréciée.

+0

Quelles sont les redirections en cours? Si nous pouvons voir ce que la boucle est peut-être, nous pouvons voir le problème. – cope360

Répondre

1

Si vous débutez avec votre application Facebook, pensez à utiliser le Official Python SDK qui accède à l'API graphique. L'API REST est being phased out.

Pour l'authentification, utilisez le JS SDK qui définira un cookie que vous pouvez lire côté serveur.

0

Je suis d'accord avec cope360. J'ai joué avec le développement d'applications facebook depuis un petit moment maintenant. Ils semblent modifier fréquemment leur API, il vaut donc mieux utiliser les bibliothèques officielles. Cela dit, pour répondre à votre question, pyfacebbok essaie d'obtenir des informations d'authentification à partir des informations contenues dans HttpRequest.GET de django. Ceci est obsolète, car Facebook fournit des informations d'authentification dans les données POST.

Le code source responsable est le pyfacebook/facebook/__init__.py. Le nom de la méthode semble être validate_request.

Questions connexes