2009-07-12 5 views
2

Я пытаюсь написать свое первое приложение для Facebook, используя python и pyfacebook, размещенные в Google App Engine. Проблема, с которой я столкнулся, - это , что и циклические переадресации. Firefox умирает, жалуясь, что «эта страница не перенаправляет правильно», когда я посещаю http://apps.facebook.com/appname.Как избежать циклического перенаправления при написании приложения facebook с помощью pyfacebook и движка Google?

Вот код:

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) 

Я вижу эту проблему, когда я вышел из Facebook. Любая помощь приветствуется.

+0

Какие переадресации происходят? Если мы сможем увидеть, что такое цикл, мы можем увидеть проблему. – cope360

ответ

1

Если вы только начинаете с своего приложения Facebook, подумайте об использовании Official Python SDK, который обращается к API-интерфейсу Graph. REST API - being phased out.

Чтобы сделать аутентификацию, используйте JS SDK, который установит файл cookie, который вы можете прочитать на стороне сервера.

0

Я согласен с cope360. Я немного поиграл с разработкой приложений facebook. Они, похоже, часто меняют свой API, поэтому вам лучше использовать официальные библиотеки.

При этом, чтобы ответить на ваш вопрос, pyfacebbok пытается получить информацию об аутентификации из информации в httpRequest.GET django. Это устарело, потому что facebook предоставляет информацию об аутентификации в данных POST.

Исходный код, который несет ответственность, находится в pyfacebook/facebook/__init__.py. Имя метода похоже validate_request.

 Смежные вопросы

  • Нет связанных вопросов^_^