如何在PHP中创建Quickbooks Online请求签名

时间:2013-09-16 22:09:10

标签: php oauth signature quickbooks quickbooks-online

我知道QBO本身不支持PHP,但如果我可以获得经过身份验证的请求,我可以直接使用他们的API。

我有以下数据

appid
oAuth consumer key
oAuth secret key

我正在对此端点进行API调用

https://qb.sbfinance.intuit.com/v3/company/<<my company id>>/item

我正在使用googles oauth-php库来尝试使这项工作。结果如下

message=Exception authenticating OAuth; errorCode=003200; statusCode=401

我显然缺少有关此处操作的详细信息,例如:如何发送应用ID以及此信息。有没有人有使用PHP获取签名的经验或示例?

谢谢!

3 个答案:

答案 0 :(得分:2)

我们有一个完整的QuickBooks PHP library,它有一个有效的OAuth实现。

您可以在此处下载:

有一个身份验证示例:

  • 文档/ example_ipp_oauth.php

数据访问示例位于:

  • 文档/ example_ipp_ids_5.php
  • 文档/ example_ipp_ids_6.php
  • 文档/ example_ipp_ids_7.php

Google OAuth libs也可以使用 - 它是标准的OAuth实现,我们过去曾成功使用过Google OAuth库。

答案 1 :(得分:0)

错误401表明存在一些身份验证问题。 因此,请使用ApiExplorer工具(或任何其他RestClient)验证您的令牌并验证请求标头。

使用V2 ApiExplorer,您可以获得API端点。

Apiexplorer不会显示OAuth令牌。因此,我建议您使用以下链接生成OAuth令牌。您可以使用新生成的OAuth令牌调用从Apiexplorer获得的端点。如果有效,那么在PHP应用程序中使用这些令牌。

[ PN - OAuth令牌不依赖于API版本]

由于

答案 2 :(得分:0)

因为,这个问题适用于v3 API访问,您需要访问 - developer.intuit.com/apiexplorer?apiname=V3QBO

请参阅ouath 1.0文档以生成如下所述的签名: http://oauth.net/core/1.0a/ http://oauth.net/core/1.0/#signing_process

用于生成签名的Twitter示例 - https://dev.twitter.com/docs/auth/creating-signature

示例RAW REQUEST AND RESPONSE标题 -

请求:

授权:OAuth oauth_token =“CCCDOPwLGymIrFSHVZ317Qx”,oauth_nonce =“cddde-464b-458a-a718-2dcd8062616a”,oauth_consumer_key =“qyprtysdsdgJZUvWDFnPoiBh1ejZn”,oauth_signature_method =“HMAC-SHA1”,oauth_timestamp =“1379398521”,oauth_version =“1.0 ”,oauth_signature = “mwVUkoHnh%2BPLqZolso2rzX5aABM%3D”

响应标题:

Cache-Control:max-age = 0,no-cache,no-store,must-revalidate,private 连接:关闭 内容长度:1402 Content-Type:application / xml; charset = UTF-8 日期:2013年9月17日星期二06:27:48 GMT 到期:0 intuit_tid:0f9b5431-b713-4d55-ac24-c00f4e91848e 服务器:Apache / 2.2.22(Unix) 变化:接受编码 通过:1.1 ipp-gateway-.net