我提出了CURL请求,但无法正常工作

时间:2020-03-10 06:34:39

标签: php api curl

以下是我的CURL请求。我试图从称为PipeDrive的CRM中提取数据。该URL正确提取了数据,但由于某种原因,该数据未显示在我的网站上。

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.pipedrive.com/v1/persons/find?term=devonvermaak2%40gmail.com&start=0&search_by_email=1&api_token=e7f91c84dad486160a9744f4972d7f742de3d",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache",
    "content-length": "217",
    "content-type": "application/json",
    "x-ratelimit-limit": "20",
    "x-ratelimit-remaining": "19",
    "x-ratelimit-reset": "2"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);
//because of true, it's in an array
$response = json_decode($response, true); 
echo 'Name: '. $response['data']['name']. '<br />';
echo 'Email: '. $response['data']['email']. '<br />';
echo 'Phone: '. $response['data']['phone'];

它根本不显示数据。我的代码有问题吗?

注意:为了安全起见,我已经编辑了api令牌。

2 个答案:

答案 0 :(得分:1)

因为您的$response

{
  "success": true,
  "data": [
    {
      "id": 91235,
      "name": "Devon Vermaak",
      "email": "devonvermaak2@gmail.com",
      "phone": "0555877857",
      "org_id": null,
      "org_name": "",
      "visible_to": "3"
    }
  ],
  "additional_data": {
    "search_method": "search_by_email",
    "pagination": {
      "start": 0,
      "limit": 100,
      "more_items_in_collection": false
    }
  }
}

您会看到dataarray

因此,您可以通过其索引访问值。例如

$response['data'][0]['name']返回Devon Vermaak

echo 'Name: '. $response['data'][0]['name']. '<br />';
echo 'Email: '. $response['data'][0]['email']. '<br />';
echo 'Phone: '. $response['data'][0]['phone'];

答案 1 :(得分:0)

“ CURLOPT_HTTPHEADER”数组值错误。希望对您有帮助。

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.pipedrive.com/v1/persons/find?term=devonvermaak2%40gmail.com&start=0&search_by_email=1&api_token=e7f91c84dad486160a9744f4972d7f742de3d",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "cache-control"=> "no-cache",
    "content-length"=> "217",
    "content-type"=> "application/json",
    "x-ratelimit-limit"=> "20",
    "x-ratelimit-remaining"=> "19",
    "x-ratelimit-reset"=> "2"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);
//because of true, it's in an array
$response = json_decode($response, true); 
print_r($response);