无法打开到 oauth.intuit.com:443 的 TCP 连接(getaddrinfo:名称或服务未知)
Failed to open TCP connection to oauth.intuit.com:443 (getaddrinfo: Name or service not known)
我正在尝试将 Ruby on Rails 应用集成到 Quickbooks Online。我正在执行 this video 的步骤。当我尝试通过按“连接到 QuickBooks”按钮进行身份验证时,我卡住了。
我收到这个错误;
这是完整的跟踪;
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:960:in `initialize'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:960:in `open'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:960:in `block in connect'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/timeout.rb:95:in `block in timeout'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/timeout.rb:105:in `timeout'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:958:in `connect'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:943:in `do_start'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:932:in `start'
我的初始化器(quickbooks.rb);
QB_KEY = "MY_CLIENT_KEY"
QB_SECRET = "MY_CLIENT_SECRET"
$qb_oauth_consumer = OAuth::Consumer.new(QB_KEY, QB_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"
})
Quickbooks.sandbox_mode = true
我的控制器(vendors_controller.rb);
def authenticate
callback = oauth_callback_vendors_url
token = $qb_oauth_consumer.get_request_token(:oauth_callback => callback)
session[:qb_request_token] = Marshal.dump(token)
redirect_to("https://appcenter.intuit.com/Connect/Begin?oauth_token=#{token.token}") and return
end
def oauth_callback
at = Marshal.load(session[:qb_request_token]).get_access_token(:oauth_verifier => params[:oauth_verifier])
session[:token] = at.token
session[:secret] = at.secret
session[:realm_id] = params['realmId']
redirect_to root_url, notice: "Your QuickBooks account has been successfully linked."
end
我收到 Undefined Method: URI.escape()
错误,但后来我切换到 Ruby 2.7.2
目前正在使用 Ruby 2.7.2
和 Rails 6.1.4
我认为错误是由 URL 地址(位于初始化程序中)引起的,我用来从 intuit 获取身份验证。我使用的 URL 与教程中显示的完全相同,但我担心它可能已经过时并且不再工作了。但我不知道用什么来代替它。以及如何将我的应用程序与 OAuth2.0 集成?我找不到任何最近的教程,我得到的最好的是“Minimulcasts”的这个 7 年前的教程。
PS:在尝试不同的 URL 地址时,我也遇到了 Net::HTTPRetriableError in VendorsController#authenticate 302 "Moved Temporarily"
错误。
Intuit Developer 不再支持 OAuth 1。
您需要遵循 https://developer.intuit.com 平台上的文档。
不幸的是,这些文档已经过时,而且帮助论坛上的支持自动化程度很低。
我正在尝试将 Ruby on Rails 应用集成到 Quickbooks Online。我正在执行 this video 的步骤。当我尝试通过按“连接到 QuickBooks”按钮进行身份验证时,我卡住了。
我收到这个错误;
这是完整的跟踪;
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:960:in `initialize'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:960:in `open'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:960:in `block in connect'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/timeout.rb:95:in `block in timeout'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/timeout.rb:105:in `timeout'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:958:in `connect'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:943:in `do_start'
/home/kvothe/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/net/http.rb:932:in `start'
我的初始化器(quickbooks.rb);
QB_KEY = "MY_CLIENT_KEY"
QB_SECRET = "MY_CLIENT_SECRET"
$qb_oauth_consumer = OAuth::Consumer.new(QB_KEY, QB_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"
})
Quickbooks.sandbox_mode = true
我的控制器(vendors_controller.rb);
def authenticate
callback = oauth_callback_vendors_url
token = $qb_oauth_consumer.get_request_token(:oauth_callback => callback)
session[:qb_request_token] = Marshal.dump(token)
redirect_to("https://appcenter.intuit.com/Connect/Begin?oauth_token=#{token.token}") and return
end
def oauth_callback
at = Marshal.load(session[:qb_request_token]).get_access_token(:oauth_verifier => params[:oauth_verifier])
session[:token] = at.token
session[:secret] = at.secret
session[:realm_id] = params['realmId']
redirect_to root_url, notice: "Your QuickBooks account has been successfully linked."
end
我收到 Undefined Method: URI.escape()
错误,但后来我切换到 Ruby 2.7.2
目前正在使用 Ruby 2.7.2
和 Rails 6.1.4
我认为错误是由 URL 地址(位于初始化程序中)引起的,我用来从 intuit 获取身份验证。我使用的 URL 与教程中显示的完全相同,但我担心它可能已经过时并且不再工作了。但我不知道用什么来代替它。以及如何将我的应用程序与 OAuth2.0 集成?我找不到任何最近的教程,我得到的最好的是“Minimulcasts”的这个 7 年前的教程。
PS:在尝试不同的 URL 地址时,我也遇到了 Net::HTTPRetriableError in VendorsController#authenticate 302 "Moved Temporarily"
错误。
Intuit Developer 不再支持 OAuth 1。
您需要遵循 https://developer.intuit.com 平台上的文档。
不幸的是,这些文档已经过时,而且帮助论坛上的支持自动化程度很低。