Quickbooks API访问令牌signature_invalid


Quickbooks API access token signature_invalid

我在获取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"。我做错了什么?

您没有发布足够的代码让我们告诉您发生了什么。我敢打赌,您没有正确生成OAuth签名或请求。

你能发布你的代码的其余部分吗?

OAuth是一个非常简单的主题——您可以考虑使用现有的用于QuickBooks的PHP DevKit之一,它可以为您完成所有这些艰苦的工作(以及许多其他艰苦的工作)。

使用上面链接的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());
}

一个好的起点是在示例QuickBooks PHP应用程序中,并遵循PHP+Intuit Anywhere快速入门指南。