Публикация

подписчиков: 2 Подписаться
0
Avatar

Получение изображения

Делаю интеграцию с ReadyScript через API моего склада. Столкнулся с проблемой загрузки изображений у товара из моего склада.

В ответ на получение товара приходит изображение со ссылкой

https://online.moysklad.ru/api/remap/1.1/download/cd2ddc87-7858-40f0-99b9-1d5de7283a9f

Пишу код через curl

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERPWD, "{$this->config['user_name']}:{$this->config['user_pass']}");

// 3. получаем HTML в качестве результата
$response = curl_exec($ch);

curl_close($ch);


В response 404 для https://online.moysklad.ru/api/remap/1.1/download/cd2ddc87-7858-40f0-99b9-1d5de7283a9f

Подскажите в чем может быть проблема. Через браузер все скачивается.

Войдите в службу, чтобы оставить комментарий.

Комментариев: 2

0
Avatar

Добрый день Александр!

Попробуйте послать запрос используя программу Postman. Метод отправки выставите  get, url запроса - https://online.moysklad.ru/api/remap/1.1/download/{укажите идентификатор вашей картинки}, аутентификацию выбирете Basic Auth и заполните соответствующие поля логина и пароля. Для проверки корректного url запроса на скачивание картинки можно вопспользоваться запросом на получение сущности. В ответе на запрос необходимо найти поле image c meta в котором указан href. Проверить, что полученное значение href соответствует url запроса на получение картинки. Пример запроса на получение товара приведен по ссылке https://online.moysklad.ru/api/remap/1.2/doc/product.html

Segorov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Правильный ответ для curl:

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERPWD, "{$this->config['user_name']}:{$this->config['user_pass']}");

$image_path = 'Путь к картинке на вашем сервере';

$fp = fopen($image_path, 'wb');
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_URL, $url);

$response = curl_exec($ch);

curl_close($ch);

fclose($fp);
Александр «ReadyScript Alex» Закусило 0 проголосовали
Действия с комментариями Постоянная ссылка