6

我一直在通过带有 ColdFusion 的 v3 API 实现与 Quickbooks 的连接,并且除了重新连接(https://appcenter.intuit.com/api/v1/connection/reconnect)之外,几乎所有东西都可以正常工作。我可以获取客户信息、创建/更新发票等,但重新连接没有运气。

从我的应用程序中,我收到错误代码 22(需要身份验证),但我发送的身份验证标头与我为任何其他 API 调用发送以访问受保护资源的身份验证标头相同。oauth 规范没有具体的“重新连接”操作,所以我的问题是 Quickbooks 重新连接调用的 auth 标头中需要包含哪些特定的 oauth 属性?

从 oauth 1.0 规范来看,它是Consumer Requests an Access Token的标头吗?
oauth_consumer_key
oauth_token
oauth_signature_method
oauth_signature
oauth_timestamp
oauth_nonce
oauth_version
oauth_verifier

还是为访问受保护资源
而发送的标头 oauth_consumer_key
oauth_token
oauth_signature_method
oauth_signature:
oauth_timestamp
oauth_nonce
oauth_version

或者,它是其他一些标题集吗?

另外,我尝试使用Dev Playgorund测试重新连接,并从那里得到
24 - Invalid App Token

所以我在这一点上不知所措。对于它的价值断开连接工作正常:)

任何帮助,指导,建议将不胜感激。

谢谢

4

3 回答 3

1

我也收到了这个错误。对我来说,错误代码 22(需要身份验证)意味着 OAuth 签名错误。这很令人困惑,因为我在 Quickbooks 文档中找不到此错误以进行重新连接。

我将请求签名为“POST”请求,而不是“GET”请求,这是 Quickbooks 调用重新连接端点所需要的。

于 2015-01-13T21:51:23.497 回答
1


如果您按照指定的顺序执行操作,第一个问题是您不能先断开连接,然后再重新连接。必须使用有效的访问令牌调用重新连接 API,因为当前的访问令牌将失效并会发出新的访问令牌。

其次,有一个调用该API的窗口来刷新访问令牌的6个月寿命,必须在最近30天内调用。这允许您的应用程序在不再次提示客户的情况下刷新令牌。

但是,在所有情况下,如果您断开连接或客户手动断开连接,您将无法调用重新连接 API。您需要再次让他们通过授权流程。

希望能帮助
贾里德

于 2014-03-03T21:08:53.917 回答
1

要测试从开发者游乐场重新连接,请使用以下步骤 - 1. 导航到 IPP Playground- 转到管理我的应用程序->单击您的应用程序

在下面的链接中填写消费者密钥和消费者秘密。

产品:https ://appcenter.intuit.com/Playground/OAuth/IA/? ck= <>&cs=<> 舞台:https ://appcenter-stage.intuit.com/Playground/OAuth/IA/?ck= <>&cs=<>

或者,您可以导航到舞台或 prod 上的应用程序的管理页面,然后单击“测试连接到应用程序 (OAuth)”。附上屏幕截图。2. 在“访问令牌持续时间”字段中输入您希望颁发的 OAuth 令牌的持续时间(例如,3600 表示成功重新连接)。附上屏幕截图。3. 单击连接到 QuickBooks 按钮,通过 OAuth 流程授权连接到领域。4. 在生成的连接后交互标题下,单击“重新连接 API 测试”。附上屏幕截图。5. 将启动一个新页面,显示您的 OAuth 令牌。将这些值复制到您的应用程序以测试重新连接

正如 Jarred 提到的,对于开发/实时应用程序,有一个窗口用于调用此 API 以刷新访问令牌的 6 个月寿命,它必须在最近 30 天内调用。

于 2014-03-04T05:49:41.393 回答