Quickbooks Online API 中 OAuth 2 的正确 URL?

Ste*_*uey 3 intuit-partner-platform

我需要一些帮助来确认要使用哪些 URL。Quickbooks Online 不再支持新帐户的 OAuth 1,OAuth 2 文档似乎有点混乱和混乱。最重要的是,在过去的几天里,我从 API 中看到了很多模糊的错误,似乎有一些定期维护,但即使所有系统都在运行,我仍然看到一条消息说“我们正在由于定期维护,暂时不可用。”

我一直在尝试通过将 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/188888888bbbbbb.ngrok.io/

目前的回复给了我一张漂亮的黄色便利贴,上面写着“我们很快就会回来”。我知道这似乎很明显,但 Intuit 状态页面上的所有内容都显示为绿色。如果它真的关闭了,如果有人能确认这是要使用的正确 URL 仍然会有所帮助,因为我注意到“发现”文档中没有一个有这个 URL 但在我把头撞到墙上之后几天前,我意识到发现文档可能不正确,所以我转而尝试使用沙箱 URL。

这是正确的还是基本 URL 应该是其他内容,例如

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

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

即使在开发模式下?

我很惊讶没有详细的语言不可知 REST 客户端分步示例,用于使用 Quickbooks Online API 的 OAuth2。有人评论说 Intuit 一定觉得展示如何生成签名太复杂了,每个人都应该使用一个 SDK,但没有一个 SDK 对我来说是一个选择。

谢谢你的帮助!

Car*_*505 5

正确的基础是https://appcenter.intuit.com/connect/oauth2。您的所有参数看起来也正确,但如果您尝试在 url 中提供这些参数,则可能会遇到加密问题。从这里的文档: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'
}
Run Code Online (Sandbox Code Playgroud)

然后像这样 url 编码:

query = URI.encode_www_form(params)
Run Code Online (Sandbox Code Playgroud)

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