1

我知道 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 获取签名的经验或示例?

谢谢!

4

3 回答 3

2

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

你可以在这里下载:

在以下位置有一个身份验证示例:

  • 文档/example_ipp_oauth.php

数据访问示例位于:

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

Google OAuth 库也应该可以工作——它是一个标准的 OAuth 实现,我们过去曾成功使用过 Google OAuth 库。

于 2013-09-17T11:08:55.400 回答
0

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

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

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

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

谢谢

于 2013-09-17T05:39:17.697 回答
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 标头 -

要求:

Authorization: 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"

响应标头:

缓存控制:max-age=0、无缓存、无存储、必须重新验证、私有连接:关闭内容长度:1402 内容类型:应用程序/xml;charset=UTF-8 日期:9 月 17 日,星期二2013 06:27:48 GMT 过期时间:0 intuit_tid:0f9b5431-b713-4d55-ac24-c00f4e91848e 服务器:Apache/2.2.22 (Unix) 变化:接受编码通过:1.1 ipp-gateway-.net

于 2013-09-17T06:31:30.947 回答