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

Доброго времени суток.

Пытаюсь получить массив товаров по API.
когда дошел до изображения, воткнулся в проблему.

Изображения товара представляет из себя массив:

Код (Text):
  1. images:array(2)
  2. 0:»/img?params=eyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0LzU0NWEyMDE1LTY5MzktNDg0NS1iMjZkLTA2NGQ2YWRkMzc4ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9″
  3. 1:»/img?params=eyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0L2Q2NGJkMjYxLWYxZjctNDBkMy05NWMzLTdkMjMwOTY3MTAyYSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9″

и передаю по очереди значения массива в GET запрос.

PHP:
  1. $img = $element[‘images’];
  2.                 if (is_array($img) || is_object($img)){
  3.                     foreach ($img as $picture){
  4.                         $csv[] = file_get_contents(«https://api.sbis.ru/retail/{$picture}«);                      
  5.                      }
  6.                 }

на выходе получаю

HTML:
  1.     <head>
  2.         <noscript><meta http-equiv=«»refresh«» content=«»2; url=/auth/?ret=%2Fretail%2Fimg%3Fparams%3DeyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0LzU0NWEyMDE1LTY5MzktNDg0NS1iMjZkLTA2NGQ2YWRkMzc4ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9«»></noscript>
  3.         <script type=«»text/javascript«»>
  4.             var
  5.                loc = window.location,
  6.                redirect=»%2Fretail%2Fimg%3Fparams%3DeyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0LzU0NWEyMDE1LTY5MzktNDg0NS1iMjZkLTA2NGQ2YWRkMzc4ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9″;
  7.             window.location = loc.protocol + ‘//’ + loc.host + ‘/auth/?ret=» + redirect + loc.hash;
  8.         </script>
  9.     </head>
  10.     <body></body>
  11. </html>

Подскажите, что это такое? Как с этим дальше работать?
Я ожидал получить ссылку на изображение (http ://мой-сайт/ images/ pic.jpeg например)

Ссылка на описание API
https://sbis.ru/help/integration/api/app_sale/nomen_list

 

Да действительно авторизацию хотел. Спасибо

Пока добавил авторизацию прям в это место. как сделать авторизацию один раз на все действия скрипта не понял пока (

PHP:
  1. if (is_array($img) || is_object($img)){
  2.                     foreach ($img as $picture){
  3.  
  4.                         $ch = curl_init();
  5.                         curl_setopt_array($ch, array(
  6.                             CURLOPT_SSL_VERIFYPEER => false,
  7.                             CURLOPT_FOLLOWLOCATION => false,
  8.                             CURLOPT_RETURNTRANSFER => true,
  9.                             CURLOPT_URL => «https://api.sbis.ru/retail/{$picture}«,
  10.                             CURLOPT_HEADER => 0,
  11.                             CURLOPT_HTTPHEADER =>  array(
  12.                                 «Content-type: charset=utf-8′,
  13.                                 ‘X-SBISAccessToken: bV…Yz’
  14.                                 )
  15.                         ));
  16.                         $curlimg = curl_exec($ch);
  17.                         curl_close($ch);
  18.                        
  19.                         file_put_contents(».$element[‘name’].‘.png’,$curlimg);

в переменной $curlimg прям код картинки.
и я её на диск сохраняю.

 

и не пытайся…

ибо авторизация проверяется для КАЖДОГО запроса

 

Работал с этим API. Авторизуешься один раз, потом в заголовках их почухню (X-SBISAccessToken) таскаешь, главное, по завершении скрипта разавторизоваться, а то у них сессии накапливаются.

 

Какая разница, та же авторизаця — через почухню в заголовке

 

Так говорю, если сессию не закрыть, AccessToken можно юзать и в другом скрипте, а запросов к API городи, сколько душЕ угодно.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *