Я сделал запрос CURL, но он не работает - PullRequest
1 голос
/ 10 марта 2020

Ниже мой запрос CURL. Я пытаюсь получить данные из CRM под названием pipedrive. 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 ]

1 голос
/ 10 марта 2020

поскольку ваш $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
    }
  }
}

, вы можете видеть, что data является array

, следовательно, вы можете получить доступ к значениям через его индекс. Пример

$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'];
0 голосов
/ 10 марта 2020

Неправильные значения массива '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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...