2013-10-24 44 views
3

我粘贴了下面的代码。 我收到一个空字符串,没有卷曲错误或任何东西。使用PHP和cURL连接到Insightly API

$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您的网址是无效的,还有更多的补充 – 2013-10-24 23:07:21

+0

喜衮 - 这个网址:https://开头的API。 insight.ly/v2.1/Help/Introduction 将“v2.1”作为其服务的URL。 –

回答

6

以下是工作代码 - 我必须在头部发送授权,而不是CURL中的选项。我不知道这是可能的。深刻的支持通过并提供了额外的说明。我发布下面的答案以防其他人遇到此问题。

$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); 
+0

当我尝试使用此代码时,我总是收到404错误。 – Red2678

+0

您的API访问设置是否正确? 404错误看起来像您的连接企图被他们的防火墙丢弃。我的猜测是,也许你在使用的API密钥中有错误。 –