Вход | Регистрация
 

Диадок api авторизация, кто делал? Поделитесь подключением.

Диадок api авторизация, кто делал? Поделитесь подключением.
Я
   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Ответ.КодСостояния;
    
КонецПроцедуры
   spiller26
 
1 - 12.07.21 - 11:13
(0) Пишет превышение ожидания
   mikecool
 
2 - 12.07.21 - 11:18
(0) подключение по апи оплачено? для этого, емнип, отдельный токен должен быть
   mikecool
 
3 - 12.07.21 - 11:18
+2 хотя мы пользовались тем, что вшит в обработку )
   Garykom
 
4 - 12.07.21 - 11:19
   mikecool
 
5 - 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);
        СтрокаОтвета = Ответ.ПолучитьТекст();
        УстановленоСоединение = Истина;
        
        ДанныеПоСоединению.Результат = Истина;
        ДанныеПоСоединению.СтрокаОтвет = СтрокаОтвета;
как то так
   spiller26
 
6 - 12.07.21 - 11:23
(2) Дали тестовый ключ, для того чтобы апи их проверить.
   mikecool
 
7 - 12.07.21 - 11:23
ключ разработчика ессно должен быть получен
   mikecool
 
8 - 12.07.21 - 11:24
и кстати (5) надергано из обработки диадока для 1с
   Garykom
 
9 - 12.07.21 - 11:24
>ТексЗапросХТТП = "/Authenticate HTTP/1.1";

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.