Ruby on rails 使用Ruby on Rails的OAuth和500px API存在问题

Ruby on rails 使用Ruby on Rails的OAuth和500px API存在问题,ruby-on-rails,ruby,api,oauth,Ruby On Rails,Ruby,Api,Oauth,我想我会玩OAuth来学习,但我在尝试让它工作时遇到了一些问题。500px的开发者页面上没有太多信息,我在谷歌上搜索的所有内容都没有解决我的问题,希望我能在这里找到答案。如果我能在这里得到任何帮助,我将不胜感激,因为我被困住了 我一直收到的错误是401 我已经设置了一个TestController来处理API class TestController < ApplicationController def index consumer = OAuth::Consumer.new

我想我会玩OAuth来学习,但我在尝试让它工作时遇到了一些问题。500px的开发者页面上没有太多信息,我在谷歌上搜索的所有内容都没有解决我的问题,希望我能在这里找到答案。如果我能在这里得到任何帮助,我将不胜感激,因为我被困住了

我一直收到的错误是401

我已经设置了一个TestController来处理API

class TestController < ApplicationController
  def index
    consumer = OAuth::Consumer.new("KEY", "SECRET",
      :site               => "https://api.500px.com",
      :request_token_path => "/v1/oauth/request_token",
      :access_token_path  => "/v1/oauth/access_token",
      :authorize_path     => "/v1/oauth/authorize")

    session[:consumer] = consumer

    session[:request_token] = session[:consumer].get_request_token(:oauth_callback => "http://localhost:3000/auth/500px/callback")
    redirect_to session[:request_token].authorize_url
  end

  def callback
    session[:oauth_token] = params["oauth_token"]
    session[:oauth_verifier] = params["oauth_verifier"]
    session[:access_token] = session[:consumer].get_access_token(session[:request_token], :oauth_token => session[:oauth_token], :oauth_verifier => session[:oauth_verifier])
  end
end
class TestController“https://api.500px.com",
:request_token_path=>“/v1/oauth/request_token”,
:access\u token\u path=>“/v1/oauth/access\u token”,
:authorize_path=>“/v1/oauth/authorize”)
会话[:消费者]=消费者
会话[:请求\u令牌]=会话[:使用者]。获取\u请求\u令牌(:oauth\u回调=>“http://localhost:3000/auth/500px/callback")
将\重定向到会话[:请求\令牌]。授权\ url
结束
def回调
会话[:oauth_令牌]=参数[“oauth_令牌”]
会话[:oauth_验证器]=参数[“oauth_验证器”]
会话[:访问\u令牌]=会话[:使用者]。获取\u访问\u令牌(会话[:请求\u令牌],:oauth\u令牌=>会话[:oauth\u令牌],:oauth\u验证器=>会话[:oauth\u验证器])
结束
结束

我想出来了。问题是,在我的URL中是localhost:3000,在我的回调URL中是127.0.0.1:3000。我想他们会是一样的,但不是这样。当我将回调URL更改为localhost:3000时,它就工作了。我已经为将来使用500pxapi的任何人更新了代码

这真的是
consumer=OAuth::consumer.new(“KEY”、“SECRET”,
),而不是
consumer=OAuth::consumer.new(ENV[“KEY”]、ENV[“SECRET”],