我通常使用PHP SDK,它运行良好。但是,我需要调用一个当前不可用的资源,这个资源能够按照https://developer.intuit.com/docs/api/accounting/invoice如何使用CURL和PHP对Quickbooks Online API进行身份验证
拉入PDF发票。因此我需要通过基本URL进行连接。现在,这是我用来连接到我自己的公司帐户的应用程序。我通过oAuth Playground生成所有凭据并每180天手动更新一次。这是我的尝试:
$url = "https://quickbooks.api.intuit.com/v3/company/123456/invoice/8661/pdf";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("OAuth oauth_token:*******",
"oauth_nonce:******",
"oauth_consumer_key:*****",
"oauth_signature_method:HMAC-SHA1",
"oauth_timestamp:1461326602",
"oauth_version:1.0",
"oauth_signature:******"));
curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
$result = curl_exec ($curl);
print $result;
这是响应:
< HTTP/1.1 400 Illegal character 0x20
< Server: nginx
< Date: Fri, 22 Apr 2016 11:58:59 GMT
< Content-Length: 0
< Connection: keep-alive
< Keep-Alive: timeout=5
我甚至不知道如果我使用所有正确的密钥和令牌。我使用了我成功用于PHP SDK工作的相同值。
如果有人能告诉我我做错了什么,我将不胜感激。谢谢。
检查你的/etc/nginx/nginx.conf尝试修改keep_alive&client_max_body_size完成后重新启动nginx。应该工作 –