我正在尝试构建已签名的请求以访问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请求?
...
答案 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端点。
希望它会有用。
由于