【问题标题】:Get access token request failed with OAuth::Unauthorized 401 problem in Rails获取访问令牌请求失败,并在 Rails 中出现 OAuth::Unauthorized 401 问题
【发布时间】:2011-01-04 05:53:03
【问题描述】:

首先,我正在尝试将我的应用与中国的一个网站连接起来。我不确定这是否重要,因为该网站完全支持 Oauth。

这是我的代码。

第一步:

  require 'oauth'


   def consumer
     OAuth::Consumer.new("206506xxxx", "574705f63783xxxaa4a0bd35e34390fb", :site =>"http://api.t.sina.com.cn")
    end


 def request_token

    @request_token = consumer.get_request_token
  session[:request_token] = @request_token
    session[:request_token_secret] = @request_token.secret
 redirect_to @request_token.authorize_url(:oauth_callback => 'http://localhost:3000/accesstoken')

 end

效果很好,我可以去 authorize_url 并获得一个 oauth_verifier

但是,我在尝试获取访问令牌时遇到了问题。

 def access_token
 request_token = OAuth::RequestToken.new(
  consumer,
  session[:request_token],
  session[:request_token_secret]
)


access_token = request_token.get_access_token(:oauth_verifier=>params["oauth_verifier"])


 end 

我也试过了

   access_token = request_token.get_access_token

但是他们都返回了 401 错误。

我清理了会话,所以它可能不是由于会话到期

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails oauth


    【解决方案1】:

    我自己解决了这个问题,所以不要使用

      session[:request_token] = @request_token
    

    我用过

       session[:request_token] = @request_token.token 
    

    哪个有效。

    【讨论】:

    • 你做了什么来完成这项工作?您描述的解决方案很枯燥。 request_token.token 是一个字符串,因此不能用于获取 access_token 如果它是你的意思。
    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2011-01-19
    • 2019-12-30
    • 1970-01-01
    • 2021-03-21
    相关资源
    最近更新 更多