使用PHP和cURL连接Insightly API

4
我在下面粘贴了我的代码。 我得到了一个空字符串,没有curl错误或其他任何东西。
$service_url = "https://api.insight.ly/v2.1/Opportunities";           
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $service_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "-my-base64-encoded-api-key");

$data = curl_exec($ch);
curl_close($ch);

由于Insightly API的文档要求密码留空,因此我也尝试过这样做。

 curl_setopt($ch, CURLOPT_USERPWD, "-my-base64-encoded-api-key:"); 

并且

 curl_setopt($ch, CURLOPT_USERPWD, "-my-base64-encoded-api-key: ");

非常感谢您的帮助。谢谢。


1
基于此:https://api.insight.ly/V2/Help/ApiController/Opportunities,您的URL无效,需要添加更多内容。 - user557846
嗨Dagon - 这个网址:https://api.insight.ly/v2.1/Help/Introduction 提供了“v2.1”作为他们服务的网址。 - Gratus D.
1个回答

7
以下是可用的代码 - 我必须在标头中发送授权,而不是在CURL选项中。我不知道这是可能的。Insightly支持提供了额外的指导,并为我解决了这个问题。如果有人遇到这个问题,我将在下面发布答案。
$service_url = 'https://api.insight.ly/v2.1/Opportunities';
$ch = curl_init($service_url);           
curl_setopt($ch, 
            CURLOPT_HTTPHEADER, 
            array('Content-Type: application/json', 
                  'Authorization: Basic my-base64-encoded-api-key'));
curl_setopt($ch , CURLOPT_HEADER, 0);           
curl_setopt($ch , CURLOPT_TIMEOUT, 30);           
curl_setopt($ch , CURLOPT_HTTPGET, 1);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, TRUE);            

$return = curl_exec($ch );    

curl_close($process);

当我尝试使用这段代码时,我一直收到404错误。 - Red2678
你的API访问设置正确吗?404错误看起来像是你的连接尝试被他们的防火墙拦截了。我猜可能是你使用的API密钥有误。 - Gratus D.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接