不应将client_secret传递给/ oauth / token

时间:2014-08-10 16:43:28

标签: ruby-on-rails facebook-graph-api oauth-2.0

是否可以使用Rails 4中的Oauth2 gem连接到Facebook? 我在调用Oauth2的get_token方法时遇到了错误。

def login_facebook
    redirect_to client.auth_code.authorize_url(
                    :redirect_uri => 'http://localhost:3000/oauth/facebook_callback'
                )
end

def facebook_callback

    token = client.auth_code.get_token(
                params[:code],
                :token_url => "/oauth/token",
                #:token_url => "/oauth/access_token",
                # :parse => :query,
                :redirect_uri => 'http://localhost:3000/oauth/facebook_callback'
            )

    puts "**************"
    puts token.inspect
    puts "**************"

end

private
def client
    OAuth2::Client.new(APPLICATION_ID, APPLICATION_SECRET, :site => FB_GRAPH_URL)
end

1 个答案:

答案 0 :(得分:0)

请求访问令牌的默认网址已从/oauth/access(这是FB使用的)更改为/oauth/token_token。现在,您需要将此设置覆盖为:

OAuth2::Client.new(FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, {
  :token_url => '/oauth/access_token',
  :redirect_uri => 'http://localhost:3000/oauth/facebook_callback'
})

您可能希望使用Koala gem与Facebook轻松沟通。