Доброго времени суток.
Пытаюсь получить массив товаров по API.
когда дошел до изображения, воткнулся в проблему.Изображения товара представляет из себя массив:
Код (Text):
images:array(2) 0:»/img?params=eyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0LzU0NWEyMDE1LTY5MzktNDg0NS1iMjZkLTA2NGQ2YWRkMzc4ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9″ 1:»/img?params=eyJPYmplY3RUeXBlIjogIm5vbWVuY2xhdHVyZV9mb3JfcmVmIiwgIk9iamVjdElkIjogMTM5NCwgIlBob3RvVVJMIjogImh0dHBzOi8vZGlzay5zYmlzLnJ1L2Rpc2tzaGFyZWRyZXN0L2Q2NGJkMjYxLWYxZjctNDBkMy05NWMzLTdkMjMwOTY3MTAyYSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9″и передаю по очереди значения массива в GET запрос.
PHP:
$img = $element[‘images’]; foreach ($img as $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> </html>Подскажите, что это такое? Как с этим дальше работать?
Я ожидал получить ссылку на изображение (http ://мой-сайт/ images/ pic.jpeg например)Ссылка на описание API
https://sbis.ru/help/integration/api/app_sale/nomen_list
Авторизацию оно просит: Настроить сервисную авторизацию приложения в СБИС | СБИС Помощь (sbis.ru) Там пример авторизации для PHP через curl.
Да действительно авторизацию хотел. Спасибо
Пока добавил авторизацию прям в это место. как сделать авторизацию один раз на все действия скрипта не понял пока (
PHP:
foreach ($img as $picture){ CURLOPT_SSL_VERIFYPEER => false, CURLOPT_FOLLOWLOCATION => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => «https://api.sbis.ru/retail/{$picture}«, CURLOPT_HEADER => 0, «Content-type: charset=utf-8′, ‘X-SBISAccessToken: bV…Yz’ ) ));в переменной $curlimg прям код картинки.
и я её на диск сохраняю.
и не пытайся…
ибо авторизация проверяется для КАЖДОГО запроса
Работал с этим API. Авторизуешься один раз, потом в заголовках их почухню (X-SBISAccessToken) таскаешь, главное, по завершении скрипта разавторизоваться, а то у них сессии накапливаются.
Какая разница, та же авторизаця — через почухню в заголовке
Так говорю, если сессию не закрыть, AccessToken можно юзать и в другом скрипте, а запросов к API городи, сколько душЕ угодно.