Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails OAuth-从QuickBooks Online API重定向后,会话变量为nil_Ruby On Rails_Oauth_Quickbooks Online - Fatal编程技术网

Ruby on rails Rails OAuth-从QuickBooks Online API重定向后,会话变量为nil

Ruby on rails Rails OAuth-从QuickBooks Online API重定向后,会话变量为nil,ruby-on-rails,oauth,quickbooks-online,Ruby On Rails,Oauth,Quickbooks Online,我正试图通过OAuth通过QuickBooks Online进行身份验证。在QuickBooks的通知屏幕上单击“授权”后,它会按预期重定向到回调url,但我无权访问我在开始时创建的请求令牌对象 我尝试使用会话变量,但QuickBooks调用该变量时该变量为nil。我该怎么做 class QuickBooksController < ApplicationController def connect @call_back_url = 'http://127.0.0.1:30

我正试图通过OAuth通过QuickBooks Online进行身份验证。在QuickBooks的通知屏幕上单击“授权”后,它会按预期重定向到回调url,但我无权访问我在开始时创建的请求令牌对象

我尝试使用会话变量,但QuickBooks调用该变量时该变量为nil。我该怎么做

class QuickBooksController < ApplicationController

  def connect

    @call_back_url = 'http://127.0.0.1:3000/quickbooks/callback'

    @consumer = OAuth::Consumer.new('key', 'secret', {
        :site => 'https://oauth.intuit.com',
        :request_token_path => '/oauth/v1/get_request_token',
        :authorize_url => 'https://appcenter.intuit.com/Connect/Begin',
        :access_token_path => '/oauth/v1/get_access_token'
    })

    @request_token = @consumer.get_request_token(:oauth_callback => @callback_url)

    session[:request_token] = @request_token

    redirect_to @request_token.authorize_url(:oauth_callback => @call_back_url)

  end

  def callback

    #This does not work because session[:request_token] is nil
    @access_token = session[:request_token].get_access_token(:oauth_verifier => params[:oauth_verifier])

  end

end
class QuickBooksController'https://oauth.intuit.com',
:request_token_path=>'/oauth/v1/get_request_token',
:authorize_url=>'https://appcenter.intuit.com/Connect/Begin',
:access_token_path=>'/oauth/v1/get_access_token'
})
@请求\u令牌=@consumer.get\u请求\u令牌(:oauth\u callback=>@callback\u url)
会话[:请求\u令牌]=@request\u令牌
重定向到@request\u token.authorize\u url(:oauth\u callback=>@call\u back\u url)
结束
def回调
#这不起作用,因为会话[:请求\u令牌]为零
@访问令牌=会话[:请求令牌]。获取访问令牌(:oauth\u验证器=>参数[:oauth\u验证器])
结束
结束

也有同样的问题-你有没有发现这个问题?不管是好是坏,我使用了一个全局变量:$qb_oauth_request_token来实现它。