Пилоны и фейсбук - PullRequest
       7

Пилоны и фейсбук

0 голосов
/ 20 марта 2011

Вот мой шаблон oauth

top.location.href = 'https://graph.facebook.com/oauth/authorize?client_id=${config['facebook.appid']}&redirect_uri=${config['facebook.callbackurl']}&display=page&scope=publish_stream'; Нажмите здесь, чтобы авторизовать это приложение

Когда я попадаю на страницу, мне предлагается войти (желательно), при входе в систему я перенаправляюсь в цикле между страницей разрешений и страницей приложения.

Мой контроллер выглядит так: Класс RootController (BaseController):

def __before__(self):
    tmpl_context.user = None
    if request.params.has_key('session'):
        access_token = simplejson.loads(request.params['session'])['access_token']
        graph = facebook.GraphAPI(access_token)
        tmpl_context.user = graph.get_object("me")

def index(self):
    if not tmpl_context.user:
        return render('/oauth_redirect.mako')
    return render('/index.mako')

Я предполагаю, что мои настройки где-то выключены, возможно, с помощью обратного вызова.

Не уверен, что это проблема с моим кодом или Python SDK для Facebook.

1 Ответ

1 голос
/ 26 марта 2011

Я думаю, что вы должны изменить свой код так, чтобы он выглядел следующим образом

def index(self):
    if request.params.has_key('session'):
      access_token = simplejson.loads(request.params['session'])['access_token']
      graph = facebook.GraphAPI(access_token)
      tmpl_context.user = graph.get_object("me")
      return render('/index.mako')
    return render('/oauth_redirect.mako')

, и в вашем href url измените redirect_uri на next и укажите его на индексное представление в вашем приложении

https://graph.facebook.com/oauth/authorize?client_id=${config['facebook.appid']}&next=/app/index&display=page&scope=publish_stream

...