Имя: Пароль:
1C
1С v8
1С & Biostar
,
0 Yorik
 
13.03.22
16:17
Доброго времени суток доргоие форумане. Клиентом была поставлена задача получать список сотрудников которые пробили карту на турникете.
Программное обеспечение на турникете Suprema Biostar 2.0. Код запроса такой:

    СерверПриемник ="175.20.20.18";
    РесурсНаСервере  ="/v2/users?limit=1000&offset=1";
    Попытка
        НТТР = Новый HTTPСоединение(СерверПриемник,8795,,,,,);
    Исключение
        Сообщить("HTTPСоединение Неудачная попытка соединения: " + ОписаниеОшибки());
    КонецПопытки;
    ИмяФайлаОтправки1 = КаталогВременныхФайлов()+"EHF.json";
    ЗаписьJSON  =Новый ЗаписьJSON;
    ЗаписьJSON.ОткрытьФайл(ИмяФайлаОтправки1);
    
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    ДобавитьВЗаписьВJSON(ЗаписьJSON,"limit", 1000) ;
    ДобавитьВЗаписьВJSON(ЗаписьJSON,"offset", 1) ;
    
    
    
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("content-type", "application/json");
    
    Попытка
        HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере,ЗаголовокHTTP);
        
        HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки1);
        
        ИмяФайлаОтвет = КаталогВременныхФайлов()+"333.json";
        Результат  = НТТР.Получить(HTTPЗапрос,ИмяФайлаОтвет);
        
        ОтветВВидеСтроки = Результат.ПолучитьТелоКакСтроку("UTF-8");
    исключение
        Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
    КонецПопытки;
1 Yorik
 
13.03.22
16:18
Результат ответа такой
{"message":"Login required.","status_code":"LOGIN_REQUIRED"}
2 Yorik
 
13.03.22
16:20
Подскажите мне пожалуйста может у кого то был опыт в этой области ,что не так я делаю?
3 NorthWind
 
13.03.22
16:30
(1) ну вроде почти шо русским языком пишет - надо залогиниться. Логин-пароль не хотите передать при соединении?
4 NorthWind
 
13.03.22
16:38
> НТТР = Новый HTTPСоединение(СерверПриемник,8795,,,,,);
вот там где кучка запятых - там еще параметры разные интересные есть.
Среди них логин и пароль.
Синтакс-помощник помогает.
5 Yorik
 
13.03.22
16:42
Пробовал, при логировании в биостар требуется     name, user_id,password где их прописывать так и не понял?
6 MWWRuza
 
гуру
13.03.22
16:52
(5) Эээээ.... Я сам "клюшечник", в восьмерке редко что пишу... Но, что-то вспоминается - Вы когда ставите запятую в строке НТТР = Новый HTTPСоединение(СерверПриемник,8795, после порта, он Вам разве не выдает подсказку, какой следующий параметр должен быть? Вот, туда, где будет соответствующая подсказка, и прописывайте. Лучше, не в тексте программы, а подтягивать из соответствующих полей формы.
7 MWWRuza
 
гуру
13.03.22
16:55
+(6) Кстати, именно такая "контекстная подсказка", ИМХО очень облегчает написание кода в снеговике по сравнению с клюшками(если не использовать доп. инструменты, но, это все немного не то...).
8 Yorik
 
13.03.22
17:08
там 2 параметра на авторизацию, а мне нужно 3
9 Ник второй
 
13.03.22
17:22
(8) 2 параметра должно хватить, пробуйте
10 MWWRuza
 
гуру
13.03.22
17:23
(5) name, user_id,password где их прописывать так и не понял?

Ну, имя и ЮзерИд скорее всего одно и то-же.
11 NorthWind
 
13.03.22
17:37
(5) ну и если прописать рабочие name и password для соединения - что происходит?
(10) да не факт... Может, этот юзер айди каким-то образом надо в сами запросы передавать, уже после авторизации. Тут нужно доку по этому API смотреть.
12 NorthWind
 
13.03.22
17:40
Оопачки... ТС, вот это не читал - https://kb.supremainc.com/knowledge/doku.php?id=en:biostar_2_api_quickstart_guide ?
13 Ivan_495
 
13.03.22
18:09
14 Yorik
 
13.03.22
18:10
(10) не проходят оба варианта
15 Yorik
 
13.03.22
20:24
Сделал вот так
    СерверПриемник ="175.20.20.18";
    РесурсНаСервере  ="/v2/login";  
    Попытка
        НТТР = Новый HTTPСоединение(СерверПриемник,8795,,,,,);
    Исключение
        Сообщить("HTTPСоединение Неудачная попытка соединения: " + ОписаниеОшибки());
    КонецПопытки;
    ИмяФайлаОтправки11 = КаталогВременныхФайлов()+"EHF1.json";
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("content-type", "application/json");
    
    ЗаписьJSON  =Новый ЗаписьJSON;
    ЗаписьJSON.ОткрытьФайл(ИмяФайлаОтправки11);
    
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    ДобавитьВЗаписьВJSON(ЗаписьJSON,"name", "biosrv") ;
    ДобавитьВЗаписьВJSON(ЗаписьJSON,"user_id", "admin") ;
    ДобавитьВЗаписьВJSON(ЗаписьJSON,"password", "lvfree22") ;
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    ЗаписьJSON.Закрыть();
    
    Попытка
        HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере,ЗаголовокHTTP);
        
        HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки11);
        
        ИмяФайлаОтвет = КаталогВременныхФайлов()+"3331.json";
        
        Результат  = НТТР.ОтправитьДляОбработки(HTTPЗапрос,ИмяФайлаОтвет);
        ОтветВВидеСтроки = Результат.ПолучитьТелоКакСтроку("UTF-8");
    исключение
        Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
    КонецПопытки;








СерверПриемник ="175.20.20.18";
    РесурсНаСервере  ="/v2/users?limit=1000&offset=1";
    Попытка
        НТТР = Новый HTTPСоединение(СерверПриемник,8795,,,,,);
    Исключение
        Сообщить("HTTPСоединение Неудачная попытка соединения: " + ОписаниеОшибки());
    КонецПопытки;
    ИмяФайлаОтправки1 = КаталогВременныхФайлов()+"EHF.json";
    ЗаписьJSON  =Новый ЗаписьJSON;
    ЗаписьJSON.ОткрытьФайл(ИмяФайлаОтправки1);
    
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    ДобавитьВЗаписьВJSON(ЗаписьJSON,"limit", 1000) ;
    ДобавитьВЗаписьВJSON(ЗаписьJSON,"offset", 1) ;
    
    
    
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("content-type", "application/json");
    
    Попытка
        HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере,ЗаголовокHTTP);
        
        HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки1);
        
        ИмяФайлаОтвет = КаталогВременныхФайлов()+"333.json";
        Результат  = НТТР.Получить(HTTPЗапрос,ИмяФайлаОтвет);
        
        ОтветВВидеСтроки = Результат.ПолучитьТелоКакСтроку("UTF-8");
    исключение
        Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
    КонецПопытки;
16 arsik
 
гуру
13.03.22
21:41
(15) Не стесняйся. Поставь фиддлер и посмотри запросы которые шлет их консольная утилита.
17 Yorik
 
13.03.22
22:26
Все, проблема решена, использовал куки для передачи параметров авторизации
18 Yorik
 
13.03.22
22:27
всем спасибо
19 Yorik
 
13.03.22
22:28
вот хорошая статья на эту тему:
https://forum.infostart.ru/forum9/topic199489/
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn