在 Quickbooks Online API 上更正 URL 的 OAuth 2?

Correct URL for OAuth 2 at Quickbooks Online API?

我需要一些帮助来确认要使用哪些 URL。 Quickbooks Online 不再支持新帐户的 OAuth 1,OAuth 2 文档似乎有点混乱和混乱。最重要的是,在过去的几天里,我从 API 看到了很多模糊的错误,而且似乎有一些定期维护,但即使所有系统都在运行,我仍然看到一条消息说 "We are temporarily unavailable due to scheduled maintenance."

我一直在尝试通过将 URL 粘贴到浏览器中来获取授权代码来测试初始步骤。这是我的 URL 逐字记录,除了一个假的 client_id 和一个假的 ngrok 子域:

https://sandbox-quickbooks.api.intuit.com/connect/oauth2?client_id=aaaaaaaaa9999999&response_type=code&scope=com.intuit.quickbooks.accounting&redirect_uri=https://8888888888bbbbbbbb.ngrok.io/quickbooks/start&state=ABC123987XYZab983111

当前的回复给我一个漂亮的黄色 post-it 注释,上面有 "We'll be back soon"。我知道这似乎很明显,但 Intuit 状态页面在所有内容上都显示为绿色。如果它真的关闭了,如果有人可以确认这是正确的 URL 使用,它仍然会有所帮助,因为我注意到 "discovery" 文档中没有一个有这个 URL 但几天前我的头撞到墙上后,我意识到发现文档可能不正确,所以我转而尝试沙箱 URL。

这是正确的还是基础 URL 应该是其他东西,例如

https://appcenter.intuit.com/connect/oauth2

https://oauth.intuit.com/oauth/v1/get_request_token

即使在开发模式下?

令我感到非常惊讶的是,Quickbooks Online API 没有针对 OAuth2 的详细的与语言无关的 REST 客户端分步示例。有人评论说,Intuit 肯定觉得显示如何生成签名太复杂了,每个人都应该使用 SDK,但 none 个 SDK 对我来说是一个选项。

感谢您的帮助!

正确的基数是 https://appcenter.intuit.com/connect/oauth2. All your params look correct too, but you might be running into a encryption problem if you're trying to serve those params in the url like that. From the documentation here: https://developer.intuit.com/docs/0100_quickbooks_online/0100_essentials/000500_authentication_and_authorization/connect_from_within_your_app,它表示您需要 url 对这些参数进行编码。

不确定您使用的是什么语言/环境,但在 RoR 中,只需将参数放在这样的哈希中:

params = {
   client_id: 'aaaaaaaaa9999999',
   key: 'value',
   key: 'value'
}

然后url编码如下:

query = URI.encode_www_form(params)

最后,在发送之前将其放入您的请求正文中。发送后,预计会收到一个授权代码作为响应中查询参数的一部分,您将使用它 post 再次返回以接收您的令牌和刷新令牌。希望这对您有所帮助!