Здравствуйте!
Со своими скудными знаниями в PHP пытаюсь написать скрипт, которые добавляем в CRM заявку. В CRM системе есть отдельный список городов. Каждому городу присвоен свой ID. Чтобы заявка создалась корректно, мне нужно сначала определить ID города, а потом этот ID подставлять в POST запрос создающий заявку.
Проблема в том, что я никак не могу избавиться от второго GET запроса. Разум подсказывает, что можно использовать данные из RESPONSE после POST, но все мои синтаксические изыски и вариации на найденных в инете примерах, не дали результата.
Вот PHP код:
$get_city_params = http_build_query($city_params);
$search_city = json_decode(file_get_contents('https://site.com/api/core/search?'. $get_city_params));
// Извлекаем результаты поиска
$found_city_result = $search_city->totalResults;
$found_city = $search_city->results[0]->itemId;
if ($found_city_result === 0) {
// Если город не найден, то создаем новую запись...
$request_params = array(
'key' => $key,
'author' => $author, // id пользователя который будет автором записи в базе данных (админ)
'category' => 3, // id категории, в которой находится город или по другому Страна
'fields[5]' => $city // title в базе данных
);
$create_city = file_get_contents('https://site.com/api/cms/records/3?', false, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($request_params)
)
)));
$search_city = file_get_contents('https://site.com/api/core/search?'. $get_city_params));
// Извлекаем ID cозданного города
$found_city = $search_city->results[0]->itemId;
}
После этого POST запроса:
$create_city = file_get_contents('https://site.com/api/cms/records/3?', false, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($request_params)
)
)));
Получаю (смотрю в логах) вот такой RESPONCE:
{
"id": 163,
"title": "Krasnodar",
}
Как избавиться от дублирующего поискового GET запроса и напрямую взять данные из responce после POST?