如何将请求签名到Quickbooks v3 Rest API

时间:2014-09-08 22:37:31

标签: rest oauth quickbooks

我正在尝试构建已签名的请求以访问Quickbooks Online REST API。我无法使用任何可用的库。我需要构建签名并手工提出请求我正在使用卷曲来发出请求

我使用oAuth游乐场检索了所有令牌。

https://appcenter.intuit.com/Playground/OAuth/

我无法找到有关如何签署特定于Quickbooks的请求的讨论,但我确实从Twitter上找到了一个关于如何创建签名的精彩教程。我假设quickbooks遵循像twitter这样的oAuth1.0规范。也许我错了?

https://dev.twitter.com/docs/auth/creating-signature

按照那里的说明,我使用带有十六进制编码的HMAC-SHA1生成了一个签名。然后我构建了Authorization标头。这就是它的样子。

OAuth oauth_consumer_key="qyprdYK7bz25GNotXMtEhApqoBGv1P",
oauth_nonce="A77E0D5AB6FE4E369E2C30F4B1D3113D",
oauth_signature="REEzODg0NjM2Q0QwNkU3MjAyMTRBNjU0RjQ5OUFGNUM1RTQzQTgyOA==",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1410190307",
oauth_token="qyprdiNGZIHAj8VPN87ZhfOZ9mQJmVSCx98l2OBET9cYDL0b",
oauth_version="1.0"

但是,我收到了未经授权的回复。

<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2014-09-08T22:31:49.649Z" requestId="66cbe3bda8b1469ba3342b84ffea149d">
    <Fault type="AUTHENTICATION">
        <Error code="3102">
            <Message>message=No apptoken detected; errorCode=003102; statusCode=401</Message>
        </Error>
    </Fault>
</IntuitResponse>

使用oAuth的Quickbooks REST v3 API有什么不同吗?是否有任何资源描述如何签署quickbooks请求?

...

2 个答案:

答案 0 :(得分:0)

Intuit使用标准的vanilla OAuth进行身份验证。

有关如何签署请求的详细信息,请参阅规范:

肯定您的消费者密钥和消费者秘密是否正确?你不太可能正确。

答案 1 :(得分:0)

对于Java - (使用signPost)How to call API (Oauth 1.0)?

SignPost lib是opensource。如果您不想使用lib(正如您所提到的那样),那么您可以查看lib的源代码。

C# - (使用devdefined)https://gist.github.com/IntuitDeveloperRelations/0913b4c224de758fde0a

否则,您可以从任何标准REST客户端尝试这些API调用。您可以将从该客户端生成的标头与您手动构建的标头进行比较。

请参阅以下文章,了解如何使用Fiddler调用QB V3端点。

希望它会有用。

由于