授权请求中缺少范围查询参数Intuit Developer Oauth2.0

问题描述

我正在尝试将我的 Ruby on Rails 应用程序集成到 Quickbooks Online,但在 oauth2.0 过程中遇到了问题。我收到错误"The scope query parameter is missing from the authorization request." 来自这个网址; https://appcenter.intuit.com/app/connect/oauth2/error?error_code=MISSING_required_ParaMETER_ScopE。但是我知道我的范围值没有丢失和正确,在使用我在测试应用程序中使用的相同代码之前它没有给出任何错误。我用于身份验证的代码块位于下面; 此代码在名为 sessions_helper.rb

的帮助程序下工作
def get_quickbooks_login_url
  client_id = "MY_ID_KEY"
  client_secret = "MY_SECRET"
  oauth_params = {
     site: "https://appcenter.intuit.com/connect/oauth2",authorize_url: "https://appcenter.intuit.com/connect/oauth2",token_url: "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer"
  }
  oauth2_client = OAuth2::Client.new(client_id,client_secret,oauth_params)
  redirect_uri = 'http://localhost:3000/auth_tokens/new?service=quickbooks'
  grant_url = oauth2_client.auth_code.authorize_url(redirect_uri: redirect_uri,response_type: "code",state: SecureRandom.hex(12),scope: "com.intuit.quickbooks.accounting")
end

感谢您的宝贵时间。

解决方法

我解决了这个问题。我使用的是 minimulcasts 教程中的 "Connect to Quickbooks" 按钮。在我的测试应用程序中,它没有造成任何问题,但在我的真实应用程序中,它使 oAuth 进程崩溃。我认为这是因为按钮中的 javascript 文件。按钮是这个;

<div>
  <ipp:connectToIntuit></ipp:connectToIntuit>
  <script type="text/javascript" src="https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js"></script>
  <script>
      intuit.ipp.anywhere.setup({menuProxy: '/path/to/blue-dot',grantUrl: '<%= get_quickbooks_login_url %>'});
  </script>
</div>

我只是用这个改变了这个按钮;

<a href="<%= get_quickbooks_login_url %>" role="button" id="connect-button" class="btn btn-info">Connect to Quickbooks</a>

我的问题解决了。但现在我收到了 wrong number of arguments (given 3,expected 2) 错误,我认为这是由 SimpleCommand 引起的。祝我好运。