Pylons和Facebook

时间:2011-03-20 18:37:10

标签: python facebook pylons

以下是我的oauth模板

top.location.href =的 'https://graph.facebook.com/oauth/authorize CLIENT_ID = $ {配置[' facebook.appid ']}&安培; REDIRECT_URI = $ {配置[' facebook.callbackurl']}&安培;显示=页面&安培;范围= publish_stream'; 单击此处以授权此应用程序

当我点击页面时,系统会提示我登录(需要),登录后,我会在权限页面和应用程序页面之间的循环中重定向。

我的控制器看起来像: class 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')

我猜我的设置已关闭,可能是回调。

不确定我的代码或facebook的python sdk是否存在问题。

1 个答案:

答案 0 :(得分:1)

我认为你应该修改你的代码看起来像这样

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网址上将redirect_uri更改为next并将其指向您应用的索引视图

https://graph.facebook.com/oauth/authorize?client_id= $ {配置[ 'facebook.appid']}&安培; 下一步 = /应用/索引&安培;显示=页面&安培;范围= publish_stream