使用Ruby on Rails进行OAuth和500px API的问题

时间:2013-12-14 09:57:49

标签: ruby-on-rails ruby api oauth

我以为我会玩OAuth来学习,而且我有一些问题试图让它发挥作用。关于500px的开发者页面上没有太多信息以及我在Google上搜索过的所有信息还没有解决我的问题,希望我能在这里找到答案。因为我被卡住了,所以我能得到的任何帮助都会非常感激!

我一直收到的错误是401 Unauthorized

我已经设置了一个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

1 个答案:

答案 0 :(得分:2)

我明白了。问题是在我的URL中它是localhost:3000,在我的回调URL中它是127.0.0.1:3000。想象他们会是相同但不是这样。一旦我将回调URL更改为localhost:3000,它就可以工作了。我已经为使用500px api的未来的任何人更新了代码。