|
Передать логин и пароль в WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); | ☑ | ||
---|---|---|---|---|
0
SkillUp
04.01.19
✎
10:22
|
Мой код:
username ="МойЛогин"; password ="МойПароль"; Попытка WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"utf-8"); WinHttp.Open("POST","https://api.seller.rozetka.com.ru/sites",0); WinHttp.SetRequestHeader("Accept-Language", "ru"); WinHttp.SetRequestHeader("Accept-Charset","utf-8"); WinHttp.setRequestHeader("Content-Language", "ru"); WinHttp.setRequestHeader("Content-Charset", "utf-8"); WinHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8"); ПараметрыПОСТ = "username="+username+"&password="+password; WinHttp.Send(ПараметрыПОСТ); ТекстОтвета = WinHttp.ResponseText(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Ошибка: ТекстОтвета -1004 - неверный логин и пароль. Правильно ли я передаю эти параметры? Или как более правильно? |
|||
1
SkillUp
04.01.19
✎
10:23
|
Ответ - {"success":false,"errors":{"message":"incorrect_username_password","code":1004,"details":null}}
|
|||
2
SkillUp
04.01.19
✎
10:25
|
Почитал api - "incorrect_username_password 1004-
Неверный логин или пароль". |
|||
3
SkillUp
04.01.19
✎
10:31
|
Может, из-за того, что - Пароль в base64() надо?! Подскажет кто-то?
|
|||
4
Ник080808
04.01.19
✎
10:40
|
(0) а чего не родной хттп используешь?
|
|||
5
SkillUp
04.01.19
✎
10:46
|
(4) Использую родной, в примере ошибка. В мой обработке родной хттп ...
|
|||
6
Ник080808
04.01.19
✎
11:06
|
(5) я имел ввиду 1совский. А ручками логин и пароль когда вводишь, он авторизуется?
|
|||
7
SkillUp
04.01.19
✎
11:15
|
(6) Пробую...
|
|||
8
SkillUp
04.01.19
✎
11:30
|
(6) Активации нет таким способом, не могу понять чего?
В АПИ: Авторизация пользователя POST https://api.seller.rozetka.com.ua/sites BodyParams Field Type Description username String Имя пользователя password String Пароль в base64() Уже не знаю что делать, все перепробовал... Как получить заветный - "access_token". Что не так? не пойму... |
|||
9
SkillUp
04.01.19
✎
11:31
|
(6)Вот пробую - WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
Но и там-"incorrect_username_password"... |
|||
10
SkillUp
04.01.19
✎
11:46
|
(6) Пробую и так, если кто подскажет где ошибка, буду очень благодарен:
Соединение = Новый HTTPСоединение( "api.seller.rozetka.com.ua/sites", // сервер (хост) , // порт, по умолчанию для http используется 80, для https 443 "МОЙЛОГИН", // пользователь для доступа к серверу (если он есть) Кодировать("МОЙПАРОЛЬ"), // пароль для доступа к серверу (если он есть) , // здесь указывается прокси, если он есть , // таймаут в секундах, 0 или пусто - не устанавливать // защищенное соединение, если используется https ); // Получаем текст корневой страницы через GET-запрос. Запрос = Новый HTTPЗапрос("/"); Результат = Соединение.Получить(Запрос); Сообщить("Нам вернули код: " + Результат.КодСостояния); Сообщить("Тело результата: " + Результат.ПолучитьТелоКакСтроку()); КонецПроцедуры Функция Кодировать(СтрокаКодирования) Кодировка = "КодировкаТекста.UTF8"; ИмяОченьВременногоФайла = ПолучитьИмяВременногоФайла(); ТекстДок=Новый ТекстовыйДокумент; ТекстДок.ДобавитьСтроку(СтрокаКодирования); ТекстДок.Записать(ИмяОченьВременногоФайла); //ЗаписьТекста = Новый ЗаписьТекста(ИмяОченьВременногоФайла);g ЗакодированнаяСтрока = Base64Строка(Новый ДвоичныеДанные(ИмяОченьВременногоФайла)); Попытка УдалитьФайлы(ИмяОченьВременногоФайла); Исключение Возврат СтрокаКодирования; КонецПопытки; Возврат ЗакодированнаяСтрока; КонецФункции |
|||
11
novichok79
04.01.19
✎
12:05
|
дичь какая-то, наверное надо так:
Соединение = Новый HTTPСоединение( "api.seller.rozetka.com.ua",// сервер (хост) ,// порт, по умолчанию для http используется 80, для https 443 "МОЙЛОГИН",// пользователь для доступа к серверу (если он есть) Кодировать("МОЙПАРОЛЬ"),// пароль для доступа к серверу (если он есть) ,// здесь указывается прокси, если он есть ,// таймаут в секундах, 0 или пусто - не устанавливать // защищенное соединение, если используется https ); // Получаем текст корневой страницы через GET-запрос. Запрос = Новый HTTPЗапрос("/sites"); Результат = Соединение.Получить(Запрос); |
|||
12
SkillUp
04.01.19
✎
12:08
|
(11) ТА у меня уже мозги закипают! Ни когда такого не делал, тут столкнулся и не знаю где ошибка!
|
|||
13
babytype
04.01.19
✎
12:09
|
я бы для начала:
1. Поставил бы себе какой-нибудь отправлятель запросов (постманом удобно) - попробовал бы через него отправить запрос и добиться нормального ответа. 2. Пароль в base64 закодировал бы через любой онлайн энкодер и попробовал отправить полученную строку явно, не кодируя через 1С. |
|||
14
SkillUp
04.01.19
✎
12:13
|
(11) Результат.КодСостояния = 301
|
|||
15
SkillUp
04.01.19
✎
12:13
|
(11) Если по твоему...
|
|||
16
SkillUp
04.01.19
✎
12:15
|
(13) Вот сейчас так и буду делать, то я уже "запарился" с этой "розеткой"!
|
|||
17
babytype
04.01.19
✎
12:17
|
Так же, может попробовать отправить так:
WinHttp.Open("POST","https://api.seller.rozetka.com.ru/sites?username=МойЛогин&password=0JzQvtC50J/QsNGA0L7Qu9GM",0); WinHttp.Send(); Без этого: ПараметрыПОСТ = "username="+username+"&password="+password; |
|||
18
NorthWind
04.01.19
✎
12:17
|
(13) ну да. Курлом (curl) можно еще. Я делал вот так (но это другой сервис):
HTTP = Новый HTTPСоединение ("dadata.ru",,,,,Истина); Заголовки = Новый Соответствие (); Заголовки.Вставить("Content-Type", "application/json"); Заголовки.Вставить("Authorization", "Token " + Токен); Заголовки.Вставить("X-Secret", Секрет); Запрос = Новый HTTPЗапрос ("/api/v2/clean/address", Заголовки); Запрос.УстановитьТелоИзСтроки("[""" + СтрокаСАдресом + """]", "CESU-8"); Ответ = HTTP.ОтправитьДляОбработки(Запрос); Возврат Ответ.ПолучитьТелоКакСтроку(); |
|||
19
NorthWind
04.01.19
✎
12:19
|
точно, кстати, техподдержка может сказать что у вас не так. Вы пробовали списаться с ними?
|
|||
20
SkillUp
04.01.19
✎
12:23
|
(19) Та к поддержке ,как раз вопросов нет, пытается помочь:
Вот несколько ответов: 1). После выполнения запроса: https://api.seller.rozetka.com.ua/apidoc/#api-Authorization-PostSites , Вы получаете access_token, который вставляете в Authorization для выполнения остальных запросов. Как пример: Authorization: Bearer 523ptt61Yqn_wy 2). Пример строки запроса: curl -X POST \ https://api.seller.rozetka.com.ua/sites \ -H 'Content-Type: application/json' \ -H 'cache-control: no-cache' \ -d '{ "username":"Login", "password":"Password(base64)" }' только вот, я пока не могу понять где у меня ошибка... |
|||
21
SkillUp
04.01.19
✎
12:24
|
(17) Сейчас попробую...
|
|||
22
SkillUp
04.01.19
✎
12:24
|
(18) и это же сейчас попробую...
|
|||
23
NorthWind
04.01.19
✎
12:25
|
(20) так они же вам явно указывают, что пассворд в base64. Понятно, что если вы его отдадите открытым текстом, то будет неправильный пароль. Не?
|
|||
24
NorthWind
04.01.19
✎
12:26
|
в (13) советуют - "2. Пароль в base64 закодировал бы через любой онлайн энкодер и попробовал отправить полученную строку явно, не кодируя через 1С." -- это пробовали?
|
|||
25
Ник080808
04.01.19
✎
12:32
|
(22) ты так и не сказал, у тя вручную логин пароль подходит? а то может у тебя пароль неправильный а ты волосы рвешь)
|
|||
26
SkillUp
04.01.19
✎
12:47
|
(24) Сп. качаю уже "постман". Чтоб явно отправлять запросы...
|
|||
27
SkillUp
04.01.19
✎
12:49
|
(23) ТА уже кодирую, но пока результат нулевой;
Пользуюсь этой функцией: Функция Кодировать(СтрокаКодирования) Кодировка = "КодировкаТекста.UTF8"; ИмяОченьВременногоФайла = ПолучитьИмяВременногоФайла(); ТекстДок=Новый ТекстовыйДокумент; ТекстДок.ДобавитьСтроку(СтрокаКодирования); ТекстДок.Записать(ИмяОченьВременногоФайла); //ЗаписьТекста = Новый ЗаписьТекста(ИмяОченьВременногоФайла);//, СокрЛП(Кодировка)); //ЗаписьТекста.Записать(СтрокаКодирования); //ЗаписьТекста.Закрыть(); ЗакодированнаяСтрока = Base64Строка(Новый ДвоичныеДанные(ИмяОченьВременногоФайла)); Попытка УдалитьФайлы(ИмяОченьВременногоФайла); Исключение Возврат СтрокаКодирования; КонецПопытки; Возврат ЗакодированнаяСтрока; КонецФункции |
|||
28
NorthWind
04.01.19
✎
12:52
|
(26) Кодировка = "КодировкаТекста.UTF8" -- вы уверены? Оно же BOM запишет в начало файла.
|
|||
29
NorthWind
04.01.19
✎
12:53
|
выведите BASE64 строку, полученную этим методом, на экран и сравните со строкой, полученной онлайн кодировщиком. Точно совпадает?
|
|||
30
SkillUp
04.01.19
✎
13:58
|
(28) БЛИН!!!!!!!!!!!!
|
|||
31
SkillUp
04.01.19
✎
14:12
|
(28) В ДЕСЯТКУ!!! Блин, ну как я так пропустил этот момент...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |