Пытаюсь подключиться к API Сбербанка, но выдает ошибку "{ "httpCode":"405", "httpMessage":"Method Not Allowed", "moreInformation":"The method is not allowed for the requested URL" }"
Ссылка на API инструкцию https://developer.sberbank.ru/api/5f2e703be4b05210f3423eeb
СтрокаURI = "https://dev.api.sberbank.ru/ru/prod/ratings/partner";
СтруктураURI = СтруктураURI(СтрокаURI);
HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Заголовки = Новый Соответствие();
//Заголовки.Вставить("X-IBM-Client-Id","ad7f7d7f-bd5e-4331-8f8c-b095d570c6e7");
Заголовки.Вставить("accept","application/json");
Заголовки.Вставить("authorization","тут authorization");
Заголовки.Вставить("x-ibm-client-id","тут id ");
Заголовки.Вставить("x-introspect-rquid","1D002Ad15D9A2Cf4d4284EBdba14A94A");
СтруктураДляJSON = Новый Структура("legal_inn","7707083893");
СтруктураДляJSON.Вставить("model_id",5);
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
ЗаписатьJSON(Запись, СтруктураДляJSON);
ТелоЗапроса = Запись.Закрыть();
HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса,КодировкаТекста.ANSI);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
ТекстОтветаJSON = HTTPОтвет.ПолучитьТелоКакСтроку();//здесь возвращается ответ запроса
(7)Да.
Теперь выдает ошибку 401 ( Приложение не авторизовано, либо некорректное значение client-id)
Client-id указываю верно
Там на сайте есть URL токена. Может его как-то надо использовать, но как?
ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
Новый СертификатыУдостоверяющихЦентровWindows());
TTPСоединение = Новый HTTPСоединение("dev.api.sberbank.ru",443,,,,ssl1 );
(25) 401 - это авторизация. С учетом того, что все нужные заголовки есть, остается грешить на их значения. Т.е. какие-то поля заполнены неверно и оно не пускает. Типа логина и пароля неверного. В данном случае вероятно вот это
HTTPЗапрос.Заголовки.Вставить("authorization", "Bearer здесь токен");
HTTPЗапрос.Заголовки.Вставить("x-ibm-client-id", "здесь id");
(26)в документации есть такой пункт как на скрине. Там какой-то динамический обновляемый токен. Может какую-то доп запрос нужно сделать?
authorization и x-ibm-client-id заполнил корректно.
(27)С 1С не работаю, но имел аналогичную ошибку (Дельфи). По умолчанию включен параметр BasicAuthentication = true. И автоматически формируется вторая строка авторизации (после первой), сделанная из пустого Username и Password. Поищите где у Вас естьтакой параметр и отключите его.
(32) тоже получилось с авторизацией. но не могу отправить запрос на создание заказа.
ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
Новый СертификатыУдостоверяющихЦентровWindows());
HTTPСоединение = Новый HTTPСоединение("dev.api.sberbank.ru",443,,,,,ssl1);
Заголовки = Новый Соответствие();
Заголовки.Вставить("accept","application/json");
Заголовки.Вставить("content-type","application/x-www-form-urlencoded");
Заголовки.Вставить("authorization","Bearer тут токен из автроизации");
Заголовки.Вставить("x-ibm-client-id",client);
Заголовки.Вставить("x-introspect-rquid",rquid);
HTTPЗапрос = Новый HTTPЗапрос("/ru/prod/order/v1/creation", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(Текст);
СтрокаJS = HTTPЗапрос.ПолучитьТелоКакСтроку();
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
ТекстОтветаJSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Показать
"Ошибка" {"httpCode":"400","httpMessage":"Bad Request","moreInformation":"[JSV0002] Invalid object: the property 'x-introspect-rquid' is missing."}