Публикация

подписчиков: 6 Подписаться
1
Avatar

Проблема с получением картинок

Разрабатываю плагин синхронизации сервиса Мой Склад и плагина woocommerce использую версию json 1.1 . До 20.07.2017 при синхронизации картинки загружались с моего склада в woocommerce . Но с 20 перестали загружаться. Используется библиотека curl перепробовал уже все варианты но картинка отказывается загружаться. Авторизация проходит но картинка в ответ не приходит. Если простр ссылку вставить в браузер то она скачивается. Подскажите что у вас изменилось.
С уважением разработчик плагина https://mswoo.ru

Михаил Прудников

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

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

1
Avatar

Михаил, добрый день!

 

Да, действительно, 20.07 произошло обновление - теперь JSON API отдает не ссылку на саму картинку, а редирект на временный URL картинки. Когда Вы вставляете ссылку в браузер, редирект происходит автоматически, поэтому скачивание картинки выполняется без ошибок.

Для корректной работы Вам необходимо добавить поддержку редиректов для ссылок на картинки в Ваш плагин.

Екатерина Евтухова 1 голос
Действия с комментариями Постоянная ссылка
3
Avatar
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Не помогло.

Файл не скачивался. Редирект присылал 404 код .Не много покопавшись.

Реализовал такой код, Все заработало.

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION , true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$output = curl_exec($ch);
$info = curl_getinfo($ch); // Получим информацию об операции

$fh = fopen($fh_url, 'w');
if($target_url == $info['url']){//если редиректа нет записываем файл
fwrite($fh, $output);
}else{
$file = file_get_contents($info['url']);//если редирект есть то скачиваем файл по ссылке
fwrite($fh, $file);
}

fclose($fh);

Может кому пригодиться.

 

Михаил Прудников 3 проголосовали
Действия с комментариями Постоянная ссылка
-2
Avatar

Та же самая проблема. Попросил техподдержку дать пример кода, как можно получить картинки. Ответ техподдержи потряс своей лаконичностью:

Юлия Сапожникова (Поддержка сервиса МойСклад)
3 авг., 17:19 MSK

Служба поддержки не предоставляет примеры кода.
Пример вы можете запросить в сообществе разработчиков JSON API.


С уважением, Сапожникова Юлия
Специалист службы поддержки пользователей
Сервис МойСклад

8 (800) 250-0432 (звонок по России бесплатный)
8 (495) 228-0432 (телефон в Москве)
доб. 110

Олег Фролов -2 проголосовали
Действия с комментариями Постоянная ссылка