【发布时间】:2011-07-02 05:09:43
【问题描述】:
我尝试在我的网站上实现使用 Facebook 登录功能,但在尝试从 Facebook 取回访问令牌时遇到了障碍。这是我的代码:
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 文件,请参阅martinottenwaelter.fr/2010/12/ruby19-and-the-ssl-error
标签: ruby-on-rails ruby facebook oauth