Имя: Пароль:
1C
1С v8
HTTPСоединение.Получить() - новые реалии, начиная с 8.3.10 или ... ?
0 PiotrLoginov
 
13.03.18
12:50
Всем привет. Возникла необходимость работы с гугл-диском ч/з API/

Завел тестовый аккаунт. Закинул пару файлов. Произвел необходимые настройки в гугл-консоли разработчика.
Скопипастил с http://catalog.mista.ru/public/651450/ нехитрый код:

    Ssl = Новый ЗащищенноеСоединениеOpenSSL(
        Новый СертификатКлиентаWindows(
                        //СпособВыбораСертификатаWindows.Выбирать
        ),
        Новый СертификатыУдостоверяющихЦентровWindows()
    );
    
    Соединение = Новый HTTPСоединение("http://www.googleapis.com";, , , , , , Ssl);
    Запрос = Новый HTTPЗапрос("drive/v3/files/"
        + "1MHwhZvehSwVe-3GtgdO0emabIoXP_3MeLKdl3Mk4rVU"
        + "/?key="
        + "{HERE'S_MY_API_KEY}");
    Ответ = Соединение.Получить(Запрос);

При выполнении кода на последней строке получаю ошибку платформы: "Ошибка работы с Интернет:   Удаленный узел не прошел проверку"
При переходе обычными браузерами (в т.ч. IE) по ссылке https://www.googleapis.com/drive/v3/files/1MHwhZvehSwVe-3GtgdO0emabIoXP_3MeLKdl3Mk4rVU/?key={HERE'S_MY_API_KEY}  без проблем получаю JSON с нужными данными. Так что прав, видимо, автор в http://catalog.mista.ru/public/651450/ - можно работать с API гугла безо всяких авторизаций ч/з OAuth или возни с Service Account Key .
Осталось победить платформу.

Здесь http://1c-pro.ru/threads/resheno-oshibka-obraschenija-k-internet-podderzhke.62370/ при описании похожей проблемы цитируется ответ от 1С с описанием изменений в платформе, начиная с 8.3.10, и многочисленными советами касательно способов решения возможных проблем. Советы эти - общего плана. Пока я прогнал код на разных компах с разными операционками в разных подсетях. Результат - прежний. Может быть, кто-то даст более конкретную информацию?
1 mehfk
 
13.03.18
12:55
Здесь разве не https нужно?
Соединение = Новый HTTPСоединение("https://www.googleapis.com";, , , , , , Ssl);
2 DmitrO
 
13.03.18
13:17
(0)этот код работает на сервере?
Если да, то "без проблем получаю JSON с нужными данными" тоже на том же сервере?
3 DmitrO
 
13.03.18
13:22
(1)на самом деле первым параметром указано только доменное имя, это миста портит текст, определяет ссылку, искусственный интеллект, мля. :)
4 PiotrLoginov
 
13.03.18
13:28
(2) да, конечно, тесты на одних и тех же машинах

(3) да, верно  :)
5 DmitrO
 
13.03.18
13:37
>>Пока я прогнал код на разных компах с разными операционками в разных подсетях.

Т.е. специально устанавливался сервер 1С на разные операцонки в разные подсети?
6 PiotrLoginov
 
13.03.18
13:39
да не..  у меня куча доступом к серверам разных организаций..  ну может не куча.    кучка.  и я к разным подключался и выполнял код, запускал IE .   Одна и та же картина.
7 PiotrLoginov
 
13.03.18
13:40
* доступов
8 DmitrO
 
13.03.18
13:42
Для чистоты эксперимента, запускать браузер на сервере надо под той же учетной записью, под которой исполняет код сервер 1С.
9 PiotrLoginov
 
13.03.18
13:48
о.  не сказал.  все тесты - на файловых версиях
10 PiotrLoginov
 
13.03.18
13:59
Вопрос закрыт.  Во всяком случае, пока что-то еще не всплыло :)

Рассказываю: внезапно в памяти всплыло - пару-тройку лет назад была похожая проблема. Тоже копипастил откуда-то код обращения к HTTP-сервису и тоже не мог побороть ошибку доступа.  Удалил параметры вызова конструктора защищенного соединения - и все взлетело.

Вот и сейчас заменил на "Ssl = Новый ЗащищенноеСоединениеOpenSSL()" - и заработало.
11 DmitrO
 
13.03.18
14:42
:)
Ога, в СП про сертификаты УЦ написано:
Если не указан, то проверка сертификата сервера не осуществляется.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн