Доброго времени суток. Пытаюсь получить массив товаров по API. когда дошел до изображения, воткнулся в проблему. Изображения товара представляет из себя массив: Код (Text): images:array(2) 0:"/img?params=eyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0LzU0NWEyMDE1LTY5MzktNDg0NS1iMjZkLTA2NGQ2YWRkMzc4ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9" 1:"/img?params=eyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0L2Q2NGJkMjYxLWYxZjctNDBkMy05NWMzLTdkMjMwOTY3MTAyYSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9" и передаю по очереди значения массива в GET запрос. PHP: $img = $element['images']; if (is_array($img) || is_object($img)){ foreach ($img as $picture){ $csv[] = file_get_contents("https://api.sbis.ru/retail/{$picture}"); } } на выходе получаю HTML: <html> <head> <noscript><meta http-equiv=""refresh"" content=""2; url=/auth/?ret=%2Fretail%2Fimg%3Fparams%3DeyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0LzU0NWEyMDE1LTY5MzktNDg0NS1iMjZkLTA2NGQ2YWRkMzc4ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9""></noscript> <script type=""text/javascript""> var loc = window.location, redirect = '%2Fretail%2Fimg%3Fparams%3DeyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0LzU0NWEyMDE1LTY5MzktNDg0NS1iMjZkLTA2NGQ2YWRkMzc4ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9'; window.location = loc.protocol + '//' + loc.host + '/auth/?ret=' + redirect + loc.hash; </script> </head> <body></body> </html> Подскажите, что это такое? Как с этим дальше работать? Я ожидал получить ссылку на изображение (http ://мой-сайт/ images/ pic.jpeg например) Ссылка на описание API https://sbis.ru/help/integration/api/app_sale/nomen_list
Авторизацию оно просит: Настроить сервисную авторизацию приложения в СБИС | СБИС Помощь (sbis.ru) Там пример авторизации для PHP через curl.
Да действительно авторизацию хотел. Спасибо Пока добавил авторизацию прям в это место. как сделать авторизацию один раз на все действия скрипта не понял пока ( PHP: if (is_array($img) || is_object($img)){ foreach ($img as $picture){ $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_SSL_VERIFYPEER => false, CURLOPT_FOLLOWLOCATION => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => "https://api.sbis.ru/retail/{$picture}", CURLOPT_HEADER => 0, CURLOPT_HTTPHEADER => array( 'Content-type: charset=utf-8', 'X-SBISAccessToken: bV...Yz' ) )); $curlimg = curl_exec($ch); curl_close($ch); file_put_contents(''.$element['name'].'.png',$curlimg); в переменной $curlimg прям код картинки. и я её на диск сохраняю.
Работал с этим API. Авторизуешься один раз, потом в заголовках их почухню (X-SBISAccessToken) таскаешь, главное, по завершении скрипта разавторизоваться, а то у них сессии накапливаются.
Так говорю, если сессию не закрыть, AccessToken можно юзать и в другом скрипте, а запросов к API городи, сколько душЕ угодно.