Первые шаги AIP Wilberries

1. SnakePlisskin 3 03.06.24 11:25 Сейчас в теме
Доброго дня!
Делаю первые шаги по работе с WB, ранее не имел такого опыта. Для начала хотел получить список номенклатуры который имеется на WB.

	HTTPЗапрос = Новый HTTPЗапрос();
	HTTPЗапрос.АдресРесурса = "api/v2/get/cards/list";
	HTTPЗапрос.Заголовки.Вставить("Authorization", адWildberriesКлючДляРаботыСAPI);
	HTTPСоединение = Новый HTTPСоединение("suppliers-api.wildberries.ru",,,,,5,Новый ЗащищенноеСоединениеOpenSSL());
	СервераОтвет = HTTPСоединение.Получить(HTTPЗапрос);
	ОтветSRV = СервераОтвет.ПолучитьТелоКакСтроку();
	КодSRV = СервераОтвет.КодСостояния;
Показать


Собственно в этой строке (HTTPЗапрос.АдресРесурса = "api/v2/get/cards/list";) использовал различные вариации на все ответ 404.

Как правильно получить список номенклатуры ?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maks_20 166 03.06.24 11:36 Сейчас в теме
А токен рабочий точно?
5. SnakePlisskin 3 03.06.24 11:44 Сейчас в теме
(2) рабочий, делал расшифровку на сайте WB. Правда только на чтение сделан.
6. maks_20 166 03.06.24 11:53 Сейчас в теме
(5) Судя по описанию https://openapi.wildberries.ru/content/api/ru/#tag/Prosmotr/paths/~1content~1v2~1get~1cards~1list/post
запрос должен быть к /content/v2/get/cards/list и в него нужно дополнительно передать параметры
в виде json строки:
{
"settings": {
"cursor": {
"limit": 100
},
"filter": {
"withPhoto": -1
}
}
}
8. SnakePlisskin 3 03.06.24 13:25 Сейчас в теме
(6)а как это правильно сделать, передавал просто строкой, не работает, делал вот так :
	Запись = Новый ЗаписьJSON;
	Запись.УстановитьСтроку();
	Запись.ЗаписатьЗначение("{ ""settings"": { ""cursor"": { ""limit"": 100 }, ""filter"": { ""withPhoto"": -1 } } }");
	СтрокаJSON = Запись.Закрыть();	
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);


тоже не работает
9. user620512 03.06.24 13:59 Сейчас в теме
(8) а ты результат смотрел что у тебя в СтрокаJSON получилось?
Если в таком виде то просто передавай как строку

СтрокаJSON = "{ ""settings"": { ""cursor"": { ""limit"": 100 }, ""filter"": { ""withPhoto"": -1 } } }";
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);


Если хочешь использовать ЗаписьJSON то написать можно вот так

ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
	
Курсор = Новый Структура;
Курсор.Вставить("limit", 100);
	
Фильтр = Новый Структура;
Фильтр.Вставить("withPhoto", -1);
	
Стр = Новый Структура;
Стр.Вставить("cursor", Курсор);
Стр.Вставить("filter", Фильтр); 
	
СтруктураИтоговая = Новый Структура; 
СтруктураИтоговая.Вставить("settings", Стр);
	
ЗаписатьJSON(ЗаписьJSON, СтруктураИтоговая);
СтрокаJSON = ЗаписьJSON.Закрыть()
Показать
10. SnakePlisskin 3 03.06.24 15:09 Сейчас в теме
(9)
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();

Курсор = Новый Структура;
Курсор.Вставить("limit", 100);

Фильтр = Новый Структура;
Фильтр.Вставить("withPhoto", -1);

Стр = Новый Структура;
Стр.Вставить("cursor", Курсор);
Стр.Вставить("filter", Фильтр);

СтруктураИтоговая = Новый Структура;
СтруктураИтоговая.Вставить("settings", Стр);

ЗаписатьJSON(ЗаписьJSON, СтруктураИтоговая);
СтрокаJSON = ЗаписьJSON.Закрыть()
Показать


Попробовал обоими способами, ошибка одна и та же 405
12. user620512 04.06.24 11:49 Сейчас в теме
(10) Судя по описанию надо использовать POST, а не GET
Поэтому попробуй не "HTTPСоединение.Получить" а "HTTPСоединение.ОтправитьДляОбработки"
3. user620512 03.06.24 11:38 Сейчас в теме
А так?
HTTPЗапрос.АдресРесурса = "/content/v2/get/cards/list"
4. SnakePlisskin 3 03.06.24 11:40 Сейчас в теме
(3)
/content/v2/get/cards/list

Так ошибка 405
7. user620512 03.06.24 12:01 Сейчас в теме
(4) уже лучше, верно в (6) советует, вам надо выполнить POST с json строкой, которую поместить в

HTTPЗапрос.УстановитьТелоИзСтроки(JSONстрока);
11. igor63 03.06.24 17:23 Сейчас в теме
https://github.com/cpr1c/tools_ui_1c
Тут нашел для себя консоль HTTP запросов. Удобный инструмент
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот