Facebook访问令牌出错

时间:2011-10-05 17:42:35

标签: ruby-on-rails-3 facebook

我的问题是在facebook回调网址上。我在Rails 3.0上使用fbgraph gem。

我要求对我的标签应用程序进行扩展权限。所以在回调中我等待代码参数和access_token。

我从fbgraph官方GIT存储库中提取此代码。

    def authorize
        begin
          @auth.client.authorization_code = params[:code]
#In access_token line should return me access__token but throw a error message (see below)
          access_token = @auth.client.access_token! # => Rack::OAuth2::AccessToken
          @facebook_user = FbGraph::User.me(access_token).fetch # => FbGraph::User
    #MORE CODE WITHOUT IMPORTANCE
          redirect_to :controller => "dashboard", :action => "index"
        rescue Exception => e
           logger.info(e.message)
        end
      end

抛出此错误消息:

Rack :: OAuth :: Client :: Error#=> @status = 400,Message =>缺少重定向uri

请尽快得到帮助。对不起,谢谢你提前

1 个答案:

答案 0 :(得分:1)

我正在使用类似的fb_graph gem。为了获得access_token,您还需要提供回调URI - 这是fb_graph版本:

client.redirect_uri = "http://your.callback.uri"
client.authorization_code = params[:code]
access_token = client.access_token!

更新

查看fbgraph gem文档,我认为你需要替换这两行:

@auth.client.authorization_code = params[:code]
access_token = @auth.client.access_token!

有了这个:

access_token = @auth.client.authorization.process_callback(params[:code], :redirect_uri => callback_url)

老实说,我看过使用fbgraph gem,但是文档非常糟糕,我切换到了fb_graph,这是类似的,实际上在文档中有一些有用的例子。