我试图在我的网站上实现使用Facebook功能的登录功能,并尝试从Facebook获取访问令牌。这里是我的代码:使用HTTP.get_response检索Facebook访问令牌时的Rails EOF错误
if params[:error_reason] == "user_denied" then
flash[:error] = "To login with Facebook, you must click 'Allow' to let the site access your information"
redirect_to :login
elsif params[:code] then
token_uri = URI.parse("https://graph.facebook.com/oauth/access_token?client_id=****************&redirect_uri=http://localhost:3000/auth/fblogin&client_secret=***************&code="+URI.escape(params[:code]))
response = Net::HTTP.get_response(token_uri)
session[:response] = response
data = ActiveSupport::JSON.decode(response)
access_token = data[:access_token]
flash[:error] = access_token
redirect_to :register
end
这是一个fblogin
控制器功能即是初始重定向的目标得到一个授权码(在params[:code]
)内。
但是当我通过这次跑,我得到以下错误:
EOFError in AuthController#fblogin
在Net::HTTP.get_response(token_uri)
线。我搜遍了各地,找不到任何东西来表明这意味着什么。它可能是Facebook在他们的访问令牌中使用的模糊字符吗?我完全失去了!
这是Ruby 1.9吗?如果是这样,您必须手动配置包含可信CA证书的CRT文件,请参阅http://martinottenwaelter.fr/2010/12/ruby19-and-the-ssl-error/ – 2011-02-22 19:49:13