Здравствуйте! Подскажите пожалуйста как вот сюда передать переменную? Приведенный пример не работает Код (Text): curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "params":{ "Timestamp": $resTimestamp } }');
не работает так. Если вручную вписываю значение "Timestamp": "2017-07-26T11:00:54Z" то все работает. А если вписываю переменную то вот такую ошибку выдает Код (Text): Array ( [error] => Array ( [error_code] => 8000 [request_id] => 601721859367851324 [error_string] => Invalid request [error_detail] => JSON can't be processed ) )
Покажи, как сделал. Ещё можно вывести эту строку в браузер/консоль, посмотреть, что в ней не так, когда её php формирует.
PHP: $resTimestamp = "2017-07-26T11:00:54Z"; $ch = curl_init(); //Отслеживание изменения с помощью сервиса Changes // Указываем параметры, включая url curl_setopt($ch, CURLOPT_URL,'https://api-sandbox.direct.yandex.com/json/v5/changes'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "method":"checkCampaigns", "params":{ "Timestamp": $resTimestamp } }'); //Post Fields curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $headers = array( 'POST /json/v5/changes/ HTTP/1.1', 'Host: api-sandbox.direct.yandex.com', 'Authorization: Bearer @@@@@J5djrAARfTTzPb3PvbEg9vMVqo@@@@@', 'Accept-Language: en', 'Client-Login: avtomig-ekb', 'Content-Type: application/json; charset=utf-8', ); //Получаем список компаний в которых произошли изминения curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $server_output = curl_exec ($ch); //Преобразуем в массив $server_output2 = json_decode($server_output, true); curl_close ($ch);
Я же тебе написал в чем проблема,поменяй на двойные кавычки,в одинарных кавычках значение переменной не будет доступно
А если переменную заключаю в двойные кавычки то получаю ответ Код (Text): Array ( [error] => Array ( [error_detail] => In parameter Timestamp the date must be specified in the format YYYY-MM-DDThh:mm:ssZ [error_code] => 4000 [error_string] => Invalid request parameters [request_id] => 603228277869224142 ) ) --- Добавлено --- так? Код (Text): curl_setopt($ch, CURLOPT_POSTFIELDS, "{ 'method':'checkCampaigns', 'params':{ 'Timestamp': $resTimestamp } }");
Да, ты был прав, вот так работает PHP: curl_setopt($ch, CURLOPT_POSTFIELDS, "{ \"method\":\"checkCampaigns\", \"params\":{ \"Timestamp\": \"$resTimestamp\" } }"); Тему можно считать закрытой!