Есть скрипт написанный Яндексом,
ТУТ, он работает, но ничего не передает.
Я его добавляю данные в него которые хочу отправить.
<?
// Входные данные
$authKey = '********************';
$oauthClientId = '****************';
$requestURL = 'https://api.partner.market.yandex.ru/v2/campaigns/21614343/hidden-offers.json';
// Установка HTTP-заголовков запроса
$headers = array("Authorization: OAuth oauth_token=$authKey, oauth_client_id=$oauthClientId");
// данные которые нужно отправить
$post_data = array(
"hiddenOffers" => array(
array(
"offerId" => 146688, // sku на маркете который нужно скрыть
"comment" => 'clear markret',
"ttlInHours" => 720,
)
),
);
echo "<h3>POST как есть</h3>";
print_r($post_data);
$data_json = json_encode($post_data); // переводим поля в формат JSON
echo "<h3>POST как JSON</h3>";
print_r($data_json);
echo "<h3> Сам запрос </h3>";
// Инициализация c URL
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $requestURL);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
// Выполнение запроса, получение результата
$result = curl_exec($curl);
// Обработка результата выполнения запроса
if (!$result) {
echo 'Ошибка cURL: ' . curl_errno($curl) . ' - ' . curl_error($curl);
} else {
// Разделение полученных HTTP-заголовков и тела ответа
$responseHeadersSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$responseHeaders = substr($result, 0, $responseHeadersSize);
$responseBody = substr($result, $responseHeadersSize);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($httpCode == 200) {
// Если HTTP-код ответа равен 200, то выводится отформатированное тело ответа
// в формате JSON
echo 'Запрос: ' . $requestURL;
$decodedBody = json_decode($responseBody);
echo '<br>Тело ответа: <pre>' . json_encode(
$decodedBody,
JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES
) . '</pre>';
} else {
echo 'HTTP-код ответа: ' . $httpCode;
// Если тело ответа не пустое, то производится попытка декодирования JSON-кода
if (!empty($responseBody)) {
$decodedBody = json_decode($responseBody);
if ($decodedBody != null) {
// Если ответ содержит тело в формате JSON,
// то выводится отформатированное тело в формате JSON
echo '<br>Тело ответа: <pre>' . json_encode(
$decodedBody,
JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES
) . '</pre>';
} else {
// Если не удалось декодировать JSON либо тело имеет другой формат,
// то выводится преобразованное тело ответа
echo '<br>Тело ответа: <pre>' . htmlspecialchars($responseBody) . "</pre>";
}
}
}
// Вывод необработанных HTTP-заголовков запроса и ответа
echo '<hr>Заголовки запроса: <pre>' . curl_getinfo($curl, CURLINFO_HEADER_OUT) . '</pre>';
echo 'Заголовки ответа: <pre>' . $responseHeaders . '</pre>';
}
curl_close($curl);
?>
все это дает
HTTP-код ответа: 400
Тело ответа:
{
"status": "ERROR",
"errors": [
{
"code": "BAD_REQUEST",
"message": "bad request"
}
]
}
или вот заговлоки
поддержка не может подсказать, кто может подскажет или делал как то по другому