Работаю с API МойСклад, стоит задача получить расходную накладную от них
Сделал в Postman запрос, всё отлично приходит:
Но мне надо получить эту накладную в моём php файле для дальнейшей работы. На скриншоте выше справа есть блок с php/curl кодом, который я копирую и добавляю в свой php файл. Единственное добавляю туда ещё 2 строки для http авторизации:
CURLOPT_USERPWD => 'mylogin:mypassword',
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
В итоге мой код выглядит так:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://online.moysklad.ru/api/remap/1.2/entity/demand/fdc8dbab-acd6-11eb-0a80-09cb004a2c1a/export/',
CURLOPT_USERPWD => 'mylogin:mypassword',
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
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 =>'{
"template": {
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/demand/metadata/embeddedtemplate/29a9b716-8664-4b13-baae-a78db1710bdb",
"type": "embeddedtemplate",
"mediaType": "application/json"
}
},
"extension": "xls"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Basic ==my-custom-token==',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
В итоге, запускаю свой php файл в браузере получаю:
{
"errors" : [ {
"error" : "Ошибка формирования печатной формы: отсутствует ссылка на шаблон для печати",
"code" : 33003,
"moreInfo" : "https://dev.moysklad.ru/doc/api/remap/1.2/#error_33003"
} ]
}
Сначала думал, что ошибка в body запроса...но где там ошибаться, если в Postman всё работает, а при копирования кода для php нет. Начал в Postman отключать галочки в Headers, и, отключив галку "Content-Length" получил ту же ошибку, что и получаю в браузере:
Я было обрадовался, думаю, надо просто дополнить CURLOPT_HTTPHEADER, чтобы было так:
CURLOPT_HTTPHEADER => array(
'Authorization: Basic ==my-custom-token==',
'Content-Type: application/json',
'Content-Length: 278',
),
К слову, Content-Length достал добавив в свой код вывод
$info = curl_getinfo($curl)
Но, это не помогло, ошибка та же. Застопорился, куда копать дальше?