Имя: Пароль:
1C
1С v8
API Lerua Merlen
0 geminisf
 
18.10.22
15:12
Доброго всем дня.
Пытаюсь получить данные по API Lerua Merlen. В примерах них  указан запрос для получения токена на CURL
curl --request POST \
  --url https://api.leroymerlin.ru/marketplace/oauth/token \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --header 'x-api-key: {X_API_KEY}' \
  --data grant_type=password \
  --data username={USERNAME} \
  --data password={PASSWORD} \
  --data client_id={CLIENT_ID} \
  --data client_secret={CLIENT_SECRET}

Я делаю вот так

Соединение = Новый HTTPСоединение("api.leroymerlin.ru",443, , ,,, Новый ЗащищенноеСоединениеOpenSSL());

Запрос = Новый HTTPЗапрос("/marketplace/oauth/token");
Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Запрос.Заголовки.Вставить("x-api-key",АПИ_Кей);
Запрос.УстановитьТелоИзСтроки("grant_type=password&username=" + username + "&password=" + password + "&client_id=" + client_id + "&client_secret=" + client_secret,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);

Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);



Хочу узнать мнение специалистов - правильно ли я сделал запрос? Ответ приходит с кодом состояния 401.
1 Кир Пластелинин
 
18.10.22
15:24
а ссылка на документацию по api есть?
2 alarm2020
 
18.10.22
15:28
(0) Зависит от того, что у тебя там в username, password и client_secret. Некоторые символы надо экранировать
3 geminisf
 
18.10.22
15:38
4 geminisf
 
18.10.22
15:41
(2) Есть еще подозрение, что прислали неправильные данные. Меня интересует насколько правильно я перевел CURL на язык 1С.
5 Kassern
 
18.10.22
15:42
(0) Есть такой классный инструмент как postman. Он умеет курлы переводить в обычные запросы. А далее уже легко и просто пишется аналог на 1с.
6 alarm2020
 
18.10.22
15:56
(4) Как я вижу, перевел правильно
7 b_ru
 
18.10.22
16:04
401 же, проверяй имя пользователя и пароль. Ставлю на то, что что-то из них состоит только из цифер и одинэска вставила неразрывный пробел
8 geminisf
 
20.10.22
09:57
(6) Спасибо
9 geminisf
 
20.10.22
09:58
(7) Проверил. Пароль действительно сначала прислали не тот. Но с новым опять 401. Сейчас они что-то у себя колдуют
10 geminisf
 
20.10.22
10:15
(7) Пароль - большие и маленькие аглицкие буквы. Имя пользователя это электронная почта. Может ее надо как-то особо подавать. Хотя это же простая строка.
11 alarm2020
 
20.10.22
10:23
(10)
https://www.ietf.org/rfc/rfc2396.txt

2.2. Reserved Characters

   Many URI include components consisting of or delimited by, certain
   special characters.  These characters are called "reserved", since
   their usage within the URI component is limited to their reserved
   purpose.  If the data for a URI component would conflict with the
   reserved purpose, then the conflicting data must be escaped before
   forming the URI.

      reserved    = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
                    "$" | ","

   The "reserved" syntax class above refers to those characters that are
   allowed within a URI, but which may not be allowed within a
   particular component of the generic URI syntax; they are used as
   delimiters of the components described in Section 3.
12 Kassern
 
20.10.22
10:23
(10) попробуйте через постман загрузить данный курл и вставить ваши данные.
13 alarm2020
 
20.10.22
10:24
(10) "Собачку" экранируй %код_собаки
14 geminisf
 
20.10.22
12:13
(13) Ага, прислали новый пароль. Там есть &. Тоже надо экранировать получается?
15 Kassern
 
20.10.22
12:21
(14) Посмотрите такой метод как кодировкаСтроки, 1с умеет штатно в урл кодировать и декодировать
16 Kassern
 
20.10.22
12:21
постман делает это автоматически, как и браузер
17 geminisf
 
20.10.22
13:57
(13) Большое спасибо. Дело было в этом
18 geminisf
 
20.10.22
13:57
(15) База старая. Не работает этот метод.
19 geminisf
 
20.10.22
13:58
(12) Не разрешают устанавливать на работе
20 geminisf
 
20.10.22
13:59
Спасибо всем. А как тут плюсики раздают?
21 Kassern
 
20.10.22
14:06
(19) так вроде его можно не устанавливать, а просто зарегаться на сайте и через браузер все сделать. https://www.postman.com/
В workspaces  создаете рабочую площадку и там нажимаете на import. В нем выбираете Raw text и вставляете ваш curl. Постман сам его сделает обычным запросом, где будет видно, что есть заголовки, а что в тело передается и как.
22 Kassern
 
20.10.22
14:07
(20) это не нимфостат, тут плюсиков не раздают
23 geminisf
 
21.10.22
10:51
(22) ясно
24 geminisf
 
21.10.22
10:51
(21) Спасибо, попробую
AdBlock убивает бесплатный контент. 1Сергей