Имя: Пароль:
1C
 
как получить токены из сайта и отправить
,
0 ra_
 
25.04.19
13:39
Добрый день форумчане, помогите пожалуйста, при интеграции с сайтом разработчик дал мне АПИ где в первую очередь нужно работать с токенами т.е авторизоваться нужно. Как можно это реализовать ?

Я таким образом отправлял данные на сайт:




мЗаказ = Заказ.ПолучитьОбъект();
    
    мДата = новый Структура;
    мДата.Вставить("doc", мЗаказ.Ответственный.Наименование);
    мТЧ = Новый Массив;
    для каждого Анализы из мЗаказ.МедицинскиеУслуги цикл        
                //Данные из табличной части
        сТЧ = Новый Структура;
        сТЧ.Вставить("analys_code",Анализы.Номенклатура.Артикул);
        мТЧ.Добавить(сТЧ);
    КонецЦикла;
    мДата.Вставить("analyses", мТЧ);
        
    ЗаписьJSON = Новый ЗаписьJSON;  
    ЗаписьJSON.УстановитьСтроку();    
    ЗаписатьJSON(ЗаписьJSON, мДата);    
    СтрокаДляОтвета = ЗаписьJSON.Закрыть();
    
   Заголовки = Новый Соответствие;
   Заголовки.Вставить("Content-type", "application/json" );

    Соединение = Новый HTTPСоединение("Адрес сайта",,,,,,);
    
    
    Запрос = Новый HTTPЗапрос("/todo",Заголовки);
    Запрос.УстановитьТелоИзСтроки(СтрокаДляОтвета, КодировкаТекста.UTF8);    
    Соединение.ОтправитьДляОбработки(Запрос);    
    
    Результат = Соединение.Получить(Запрос);
    КодСостояния = Результат.КодСостояния;
    Реквизит1 = Результат.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
    ТекстJSON = СтрокаДляОтвета;
1 Nuobu
 
25.04.19
13:49
Пусть даст тебе пример кода.

токен - это часть строки в заголовке.
Ты, при авторизации, его считываешь, записываешь в переменную "сессия" и "токен".
А потом, когда делаешь запрос на отправку файла - используешь их.

То есть работаешь в два этапа -

  Соединение = Новый HTTPСоединение("Адрес сайта",,,,,,); // тут явки, пароли.
Запрос = Новый HTTPЗапрос("/login",Заголовки); // тут логин, пароль. /todo - будет не здесь, а дальше
Ответ = Соединение.ОтправитьДляОбработки(Запрос);

Токен = Ответ.Заголовки.Токен; // я точно не помню, как правильно их получать,
Сессия = Ответ.Заголовки.Сессия; // но общий смысл, думаю, понятен.

Заголовки = Новый Соответствие;
Заголовки.Вставить("Токен", токен);
Заголовки.Вставить("Сессия", Сессия);

    Запрос = Новый HTTPЗапрос("/todo",Заголовки);
    Запрос.УстановитьТелоИзСтроки(СтрокаДляОтвета, КодировкаТекста.UTF8);    
    Соединение.ОтправитьДляОбработки(Запрос);  

    Запрос = Новый HTTPЗапрос("/todo",Заголовки);
    Запрос.УстановитьТелоИзСтроки(СтрокаДляОтвета, КодировкаТекста.UTF8);    
    Соединение.ОтправитьДляОбработки(Запрос);  

// я два раза отправил запрос, чтобы ты понимал, что сессию и токен нужно получать один раз - при логине.
2 1Сергей
 
25.04.19
13:49
Майнишь на 1С?
3 ra_
 
25.04.19
13:51
(1) Принимает:

{
    “login”: <string>,
    “password”: <string>
}

Возвращает:

{
    “success”: <true | false>,
    “message”: <string:Status message>,
    “token”: <string:Token>, //Отсутствует если “success” false
    “code”: <int:Error code> //Отсутствует если “success” true
}
4 ra_
 
25.04.19
13:52
(1) не могли бы примерно написать как это делать в моем коде пожалуйста
5 Nuobu
 
25.04.19
13:54
(4) Нет, не могу.
т.к. я апишку не вижу.
6 Nuobu
 
25.04.19
13:55
(4) Попробуй в почту стукнуть.
[email protected]
7 ra_
 
25.04.19
14:35
(6) АПИ скинуть?
8 Nuobu
 
25.04.19
15:06
(7) агась.