我的问题是在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
请尽快得到帮助。对不起,谢谢你提前
答案 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,这是类似的,实际上在文档中有一些有用的例子。