Имя: Пароль:
1C
 
Диадок api авторизация, кто делал? Поделитесь подключением.
,
0 spiller26
 
12.07.21
11:09
Пытаюсь наладить запросы по api c Диадоком, т.к. предлагаемая библиотека работает через COM.

&НаСервере
Процедура Команда1НаСервере()

    //получить авторизационный токен
    СерверApi = "diadoc-api.kontur.ru";
    АдресРесурса = "/Authenticate HTTP/1.1";
    
    ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
    
    ssl = Новый ЗащищенноеСоединениеOpenSSL();
    СоединениеХТТП = Новый HTTPСоединение(СерверApi,443,,,,100,ssl);

    ТексЗапросХТТП = "/Authenticate HTTP/1.1";
    
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Authorization", "DiadocAuth ddauth_api_client_id="+"***********************************");
    Заголовки.Вставить("Content-Length", "1252");
    Заголовки.Вставить("Connection", "Keep-Alive");
    ЗапросАвторизованный = Новый HTTPЗапрос(ТексЗапросХТТП, Заголовки);
    
    HTTPОтвет = СоединениеХТТП.Получить(ЗапросАвторизованный, ИмяФайлаОтвета);
    СтрокаОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
    КодСостояния = HTTPОтвет.КодСостояния;
    
КонецПроцедуры
1 spiller26
 
12.07.21
11:13
(0) Пишет превышение ожидания
2 mikecool
 
12.07.21
11:18
(0) подключение по апи оплачено? для этого, емнип, отдельный токен должен быть
3 mikecool
 
12.07.21
11:18
+2 хотя мы пользовались тем, что вшит в обработку )
4 Garykom
 
гуру
12.07.21
11:19
(0) https://api-docs.diadoc.ru/ru/latest/ и в саппорт
5 mikecool
 
12.07.21
11:22
АдресРесурса = "/Authenticate?login="+ЛогинНаСайтДиадок+"&password="+ПарольНаСайтДиадок;
        АдресСайта = "diadoc-api.kontur.ru";
        HTTPЗапрос2 = Новый HTTPЗапрос;
        HTTPЗапрос2.Заголовки.Вставить("POST "+АдресРесурса+" HTTP/1.1");
        HTTPЗапрос2.Заголовки.Вставить("Host", "diadoc-api.kontur.ru");
        HTTPЗапрос2.Заголовки.Вставить("Content-Length", 0);
        HTTPЗапрос2.Заголовки.Вставить("Authorization", "DiadocAuth ddauth_api_client_id="+КлючРазработчика());
        HTTPЗапрос2.АдресРесурса = АдресРесурса;    
        
        Соединение1 = Новый HTTPСоединение(АдресСайта,,,, , ,Новый ЗащищенноеСоединениеOpenSSL(),Ложь);
        ФайлРезультата = ПолучитьИмяВременногоФайла();
        Соединение1.ОтправитьДляОбработки(HTTPЗапрос2, ФайлРезультата);
        Ответ = Новый ТекстовыйДокумент();
        Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8);
        СтрокаОтвета = Ответ.ПолучитьТекст();
        УстановленоСоединение = Истина;
        
        ДанныеПоСоединению.Результат = Истина;
        ДанныеПоСоединению.СтрокаОтвет = СтрокаОтвета;
как то так
6 spiller26
 
12.07.21
11:23
(2) Дали тестовый ключ, для того чтобы апи их проверить.
7 mikecool
 
12.07.21
11:23
ключ разработчика ессно должен быть получен
8 mikecool
 
12.07.21
11:24
и кстати (5) надергано из обработки диадока для 1с
9 Garykom
 
гуру
12.07.21
11:24
>ТексЗапросХТТП = "/Authenticate HTTP/1.1";

явный косяк
10 spiller26
 
12.07.21
11:24
(5) Про авторизацию забыл по ходу
(7) Получен
11 Garykom
 
гуру
12.07.21
11:25
(9)  просто
ТексЗапросХТТП = "/Authenticate";
12 Garykom
 
гуру
12.07.21
11:26
13 mikecool
 
12.07.21
11:28
код из (5) был актуален с полгода назад
14 spiller26
 
12.07.21
11:30
(13) А сейчас как актуально?
15 spiller26
 
12.07.21
12:02
(12) Content-Length: 1252
Возвращает = 400
а Content-Length: 0 -проходит без проблем.
16 mikecool
 
12.07.21
12:02
(14) не знаю )) я туда больше полгода не ходок, проверь - если взлетит, значит актуально )))
17 spiller26
 
12.07.21
12:26
(16) Да по ходу ещё актуально.