Как избежать циклического перенаправления при написании приложения для Facebook с использованием pyfacebook и Google App Engine? - PullRequest
2 голосов
/ 12 июля 2009

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

Вот код:

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. Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 23 августа 2010

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

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

0 голосов
/ 14 февраля 2011

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

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

Ответственный исходный код находится в pyfacebook/facebook/__init__.py. Имя метода выглядит как validate_request .

...