@Aleksei167

СURL POST Yandex api?

5e3e916c58b7e682741702.png

Нужна помощь, первый раз выполняю post запросы и только начал изучать cURL. Выполняя запрос 1) , приведенный ниже, в ответ получаю - ({"message":"request must be in json format"}).
Выполняя запрос 2) получаю -{"message":"json root must be an object"}
В чем может быть проблема?
1)
$tt= $curl->post('https://fleet-api.taxi.yandex.net/v1/parks/driver-profiles/list',array(
      'X-Client ID:'=>'taxi/park/<token>',
      'X-API-key:' => '<api key>',
       'Accept-Language:'=>'en',
       
      ));
 
      sendMessage($uid,$tt);    
2)$tt= $curl->post('https://fleet-api.taxi.yandex.net/v1/parks/driver-profiles/list',array(
      '{"X-Client ID":"taxi/park/<id>,"X-API-key"<api key>", "Accept-Language":"en"}',
       
      ));
  • Вопрос задан
  • 2026 просмотров
Решения вопроса 1
@KingstonKMS
Необходимо указать в заголовке тип принимаемого ответа. Этот пример должен помочь понять, что не так и где исправить:
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://fleet-api.taxi.yandex.net/v1/parks/driver-profiles/list",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>"{\n  \"limit\": 100,\n  \"offset\": 0,\n  \"query\": {\n    \"park\": {\n      \"id\": \"ee6f33c4562b4e1f8646d157bd70b2c4\",\n      \"driver_profile\": {\n      }\n    }\n  },\n  \"fields\": {\n  },\n  \"sort_order\": [{\n    \"direction\": \"asc\",\n    \"field\": \"account.current.balance\"\n  }]\n}",
  CURLOPT_HTTPHEADER => array(
    "Accept: application/json",
    "Content-Type: application/json",
    "X-Client-ID: API7-sandbox-client",
    "X-API-Key: FoquKQFW/WgvS/Kae/GheB/BdOtcvzSZLYrZv",
    "Accept-Language: ru"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MSAFT
Ты отправляешь массив, а Yandex ожидает JSON.

https://www.php.net/manual/ru/function.json-encode.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы