![]() |
|
Интеграция с Rozetka 🠗 (Волшебник 20.12.2022 16:16) |
☑ | ||
---|---|---|---|---|
0
profiler
20.12.22
✎
16:15
|
Добрый день
Пишу интеграцию с Rozetka Токен получил, все ок. Отправляю запрос с параметром на получение описания товара - получаю в ответе "access_denied", если не указывать параметры в запросе, к примеру для получения всех товаров - ошибки нет Походу проблема у меня в параметрах запроса. Что я делаю не так, помогите, плиз Токен = ПолучитьТокенРозеткаНаСервере(); Заголовки = Новый Соответствие; Заголовки.Вставить("Authorization","Bearer " + Токен); Ошибка = ""; ДанныеТовара = Новый Структура(); ДанныеТовара.Вставить("id", "302179473"); ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, ДанныеТовара); ТелоЗапроса = ЗаписьJSON.Закрыть(); АдресAPI = "api-seller.rozetka.com.ua"; ssl = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); Соединение = Новый HTTPСоединение(АдресAPI,,,,,60,ssl); ЗапросHTTP = Новый HTTPЗапрос; ЗапросHTTP.АдресРесурса = "/items"; ЗапросHTTP.Заголовки = Заголовки; ЗапросHTTP.УстановитьТелоИзСтроки(ТелоЗапроса, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать); Попытка Ответ = Соединение.ВызватьHTTPМетод("GET", ЗапросHTTP); Исключение ВызватьИсключение; КонецПопытки; Если Ответ.КодСостояния = 200 Тогда ТелоОтвета = Ответ.ПолучитьТелоКакСтроку(); Чтение = Новый ЧтениеJSON; Чтение.УстановитьСтроку(ТелоОтвета); ПолученноеСоответствие = ПрочитатьJSON(Чтение, Истина); КонецЕсли; |
|||
1
Волшебник
модератор
20.12.22
✎
16:16
|
У нас ваша Розетка вообще не открывается
https://rozetka.com.ua/ |
|||
2
profiler
20.12.22
✎
16:18
|
(1) У вас может и не открывается, но тут могут быть люди, у которых открывается
|
|||
3
Kassern
20.12.22
✎
16:25
|
(0) написано же доступ запрещен.
Я бы еще попробовал ssl = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено); |
|||
4
Kassern
20.12.22
✎
16:26
|
"если не указывать параметры в запросе" - так может у вас нет доступа использовать параметры? В общем читайте документацию API
|
|||
5
profiler
20.12.22
✎
16:30
|
(3) если использовать другой запрос, как ниже на поиск товаров (без параметров запроса), то ответ получаю
В ответе первые 20 товаров Токен = ПолучитьТокенРозеткаНаСервере(); Заголовки = Новый Соответствие; Заголовки.Вставить("Authorization","Bearer " + Токен); Ошибка = ""; АдресAPI = "api-seller.rozetka.com.ua"; ssl = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); Соединение = Новый HTTPСоединение(АдресAPI,,,,,60,ssl); ЗапросHTTP = Новый HTTPЗапрос; ЗапросHTTP.АдресРесурса = "/items/search"; ЗапросHTTP.Заголовки = Заголовки; ЗапросHTTP.УстановитьТелоИзСтроки("", "UTF-8", ИспользованиеByteOrderMark.НеИспользовать); Попытка Ответ = Соединение.ВызватьHTTPМетод("GET", ЗапросHTTP); Исключение ВызватьИсключение; КонецПопытки; Если Ответ.КодСостояния = 200 Тогда ТелоОтвета = Ответ.ПолучитьТелоКакСтроку(); Чтение = Новый ЧтениеJSON; Чтение.УстановитьСтроку(ТелоОтвета); ПолученноеСоответствие = ПрочитатьJSON(Чтение, Истина); КонецЕсли; Я так понял, что проблема где-то тут ДанныеТовара = Новый Структура(); ДанныеТовара.Вставить("id", "302179473"); ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, ДанныеТовара); ТелоЗапроса = ЗаписьJSON.Закрыть(); |
|||
6
Kassern
20.12.22
✎
16:41
|
(5) "Я так понял, что проблема где-то тут" - ну так посмотрите, что пишут в документации API, что нужно в теле передавать. Зайдите в отладку и посмотрите значение переменной в ТелоЗапроса и сравните его с тем, что в документации написано. Сделайте выводы.
|
|||
7
Kassern
20.12.22
✎
16:42
|
Скиньте сюда пример тела запроса из документации с отбором.
|
|||
8
profiler
20.12.22
✎
16:46
|
В документации АПИ нет никаких примеров, только описание методов
https://ibb.co/ZSPK1nC |
|||
9
hockeyist
20.12.22
✎
17:07
|
(5) А в ответе что. В том, где первые 20 товаров? Какие id?
|
|||
10
hockeyist
20.12.22
✎
17:12
|
Стоп. Это же GET. Не надо никакого тела запроса. Id указываешь в строке. У тебя же, на твоей картинке и пример есть внизу. Посмотри внимательнее. И никакого search. Откуда ты его вообще взял?
|
|||
11
profiler
20.12.22
✎
17:17
|
(10) search - это другой запрос - на получение товаров
Спасибо - работает, если прям в строке и без тела Тема закрыта |
|||
12
Kassern
20.12.22
✎
17:20
|
(8) "В документации АПИ нет никаких примеров" - и на самом скрине внизу request example))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |