Версия для печати темы (https://pro1c.org.ua/index.php?s=569a29ccaf261b423cd058f021b64650&showtopic=66675)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Вчасно АПИ (интеграция). Авторизация

Автор: Inkognito 03.08.21, 9:56

УТП. Необходимо авторизироваться и получить список входящих документов с начала года.
Проблема: непонятно как это корректно сделать.

Токен = "ЗдесьБылТокен";
    ЗаголовокHTTP = Новый Соответствие();
    
    ЗаголовокHTTP.Вставить("Authorization", "Token " + Токен);
    ЗаголовокHTTP.Вставить("X-Vendor-ID", "1C");
    ЗаголовокHTTP.Вставить("Accept", "application/xml");
    
    текст = "https://vchasno.ua/api/v2/incoming-documents?date_created_from=20210101&date_created_to=20210701";

    ЗапросHTTP = Новый HTTPЗапрос(текст, ЗаголовокHTTP);
    
    //Ответ от сервера получим в возвращаемом значении типа HTTPОтвет
    тмпОтвет = ПолучитьИмяВременногоФайла("txt");    
    
    НТТРВчасно = Новый HTTPСоединение("https://vchasno.ua");  //не факт!
    ОтветHTTP = НТТРВчасно.Получить(ЗапросHTTP, тмпОтвет);


Результат:
Ошибка при вызове метода контекста (Получить)
ОтветHTTP = НТТРВчасно.Получить(ЗапросHTTP, тмпОтвет);
по причине:
Ошибка работы с Интернет: Couldn't resolve host name

Автор: Vofka 03.08.21, 10:28

Цитата(Inkognito @ 03.08.21, 10:56) *
НТТРВчасно = Новый HTTPСоединение("https://vchasno.ua"); 

Тут должен быть только хост, в вашем случае vchasno.ua и какой-то последующий параметр может сказать, что это именно httpS (по умолчанию это http).
Вот, кстати, есть какие-то примеры обработок https://pro1c.org.ua/redirect.php?https://integrations.vchasno.com.ua/#block512

Автор: Inkognito 03.08.21, 10:49

Работающий код (может кому пригодится), в качестве примера подключения и получения списка входящих документов:
Пример

Токен = "ЗдесьБылТокен";
ЗаголовокHTTP = Новый Соответствие();

ЗаголовокHTTP.Вставить("Authorization", "Token " + Токен);
ЗаголовокHTTP.Вставить("X-Vendor-ID", "1C");
ЗаголовокHTTP.Вставить("Accept", "application/xml");

текстЗапроса = "/api/v2/incoming-documents?date_created_from=20210101&date_created_to=20210701";

ЗапросHTTP = Новый HTTPЗапрос(текстЗапроса, ЗаголовокHTTP);

тмпОтвет = ПолучитьИмяВременногоФайла("txt");    
Хост = "vchasno.ua";
НТТРВчасно = Новый HTTPСоединение(Хост,,,,,60,Новый ЗащищенноеСоединениеOpenSSL());

ОтветHTTP = НТТРВчасно.Получить(ЗапросHTTP, тмпОтвет);

КодОтвета = ОтветHTTP.КодСостояния;

Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(тмпОтвет);

ФайлОтвета = Новый Файл(тмпОтвет);
Если ФайлОтвета.Существует() Тогда
    ТекстОтвета = Новый ТекстовыйДокумент();
    ТекстОтвета.Прочитать(тмпОтвет,КодировкаТекста.UTF8);
    Если ТекстОтвета.КоличествоСтрок() > 0 Тогда
        ОтветСервера = ТекстОтвета.ПолучитьТекст();    
    КонецЕсли;    
    
    Сообщить(ОтветСервера);
    
    _ЧтениеXML = Новый ЧтениеXML;
    
    Попытка
        _ЧтениеXML.УстановитьСтроку(ОтветСервера);
    Исключение
        ОбщегоНазначения.СообщитьОбОшибке("Неудачная попытка чтения ответа сервиса: "+ОписаниеОшибки(), Отказ);
    КонецПопытки;            
Иначе
    ОбщегоНазначения.СообщитьОбОшибке("Не найден файл ответа сервиса: "+тмпОтвет, Отказ);
КонецЕсли;

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua