【问题标题】:Quickbooks API reconnect issueQuickbooks API 重新连接问题
【发布时间】:2014-04-03 10:44:55
【问题描述】:

我一直在通过带有 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 - 无效的应用程序令牌

所以我在这一点上不知所措。值得 Disconnect 工作正常 :)

我们将不胜感激任何帮助、指导和建议。

谢谢

【问题讨论】:

  • 请参阅-developer.intuit.com/docs/0025_quickbooksapi/0053_auth_auth/… 错误 24 表示您的应用未通过 API 批准。
  • 在调用重新连接 API 时,我们也似乎随机收到了 <ErrorMessage>This API requires Authorization.</ErrorMessage> <ErrorCode>22</ErrorCode>。目前,除非我们认为我们在 150-180 天的窗口内,否则我们不会调用 reconnect。至于测试令牌是否仍然有效,我们将在 try/catch 包装器中调用一个简单的 Get 方法。
  • 您是如何解决问题的?在 java 上调用 reconnect api 时出现同样的错误。如果它工作正常,请您发布您的正确答案。谢谢。

标签: api oauth coldfusion quickbooks reconnect


【解决方案1】:


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

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

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

希望对你有帮助
震动

【讨论】:

  • Kaneally 你有用于重新连接的示例 java 代码吗?
  • 这根本没有回答问题。
【解决方案2】:

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

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

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

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

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

【讨论】:

  • 这个答案与问题无关。
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2013-05-03
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多