我无法获取Quickbooks API的访问令牌。我成功获得了请求令牌和用户验证,但是当我运行此代码时:
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, 'https://oauth.intuit.com/oauth/v1/get_access_token?oauth_consumer_key=qyprdNDNZ9hEhZgwZBBia6ZDkwpRtP&oauth_nonce=HUPXw&oauth_signature=raVWgofhFJpAtES9e0mqlxe0I2k%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1384812231&oauth_token=qyprdWLEO99zeQjkz3C75A6bJxLYMgOESy9PQDS4IIUZ9fY3&oauth_verifier=7unnxvg&oauth_version=1.0');
$r = curl_exec($ch);
print $r;
...打印“oauth_problem = signature_invalid”。我做错了什么?
答案 0 :(得分:1)
你没有真正发布足够的代码让我们告诉你发生了什么。我敢打赌,您没有正确生成OAuth签名或请求。
你可以发布剩下的代码吗?
OAuth是一个非常重要的话题 - 您可以考虑使用现有的PHP DevKits for QuickBooks之一来完成所有这些艰苦工作(以及许多其他艰苦的工作)。
使用上面链接的QuickBooks PHP DevKit,授权/获取这些令牌非常简单:
<?php
/**
* Require the QuickBooks library
*/
require_once dirname(__FILE__) . '/../../QuickBooks.php';
/**
* Require some IPP/OAuth configuration data
*/
require_once dirname(__FILE__) . '/config.php';
// Try to handle the OAuth request
if ($IntuitAnywhere->handle($the_username, $the_tenant))
{
; // The user has been connected, and will be redirected to $that_url automatically.
}
else
{
// If this happens, something went wrong with the OAuth handshake
die('Oh no, something bad happened: ' . $IntuitAnywhere->errorNumber() . ': ' . $IntuitAnywhere->errorMessage());
}
一个好的起点是在example QuickBooks PHP app和PHP + Intuit Anywhere quick-start guide之后。